SyntaxError: "x" is a reserved identifier

Message

SyntaxError: The use of a future reserved word for an identifier is invalid (Edge)
SyntaxError: "x" is a reserved identifier (Firefox)
SyntaxError: Unexpected reserved word (Chrome)

Type d'erreur

Quel est le problème ?

Les mots-clés réservés lèveront une exception s'ils sont utilisés en tant qu'identifiants. Voici les mots-clés réservés en mode strict et en mode sloppy :

  • enum

Voici les mots-clés uniquement réservés en mode strict :

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static

Exemples

Mots-clés réservés en modes strict et non-strict

L'identifiant enum est réservé dans les différents cas :

js
var enum = { RED: 0, GREEN: 1, BLUE: 2 };
// SyntaxError: enum is a reserved identifier

En mode strict, d'autres mots-clés sont réservés :

js
"use strict";
var package = ["pomme", "poire", "pêches"];
// SyntaxError: package is a reserved identifier

Pour ne pas avoir l'erreur, il faudra renommer les variables :

js
var enumCouleurs = { RED: 0, GREEN: 1, BLUE: 2 };
var liste = ["pomme", "poire", "pêches"];

Mettre à jour les anciens navigateurs

Si vous utilisez un ancien navigateur qui n'implémente pas let ou class, vous devrez mettre à jour votre navigateur :

js
"use strict";
class DocArchiver {}

// SyntaxError: class is a reserved identifier
// (lève une exception dans les anciens navigateurs
// tels que Firefox 44 et les versions antérieures)

Voir aussi