MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

ReferenceError: can't access lexical declaration`X' before initialization

Message

ReferenceError: assignment to undeclared variable "x" (Firefox)

Type d'erreur

ReferenceError

Quel est le problème ?

Il est possible d'accéder à une variable lexicale avant que celle-ci ait été initialisée. Cela peut se produire dans n'importe quelle instruction de bloc avec une variable déclarée avec let ou const et qui est utilisée avant son initialisation.

Exemple

Exemples invalides

Dans l'exemple qui suit, la variable toto est redéclarée dans le bloc et elle n'est donc pas initialisée.

function test(){
   let toto = 33;
   if (true) {
      let toto = (toto + 55); // ReferenceError: can't access lexical declaration `toto` before initialization
   }
}
test();

Exemples valides

Afin que toto puisse être modifiée au sein de l'instruction if, on enlèvera la redéclaration dans ce bloc :

function test(){
   let toto = 33;
   if (true) {
      toto = (toto + 55);
   }
}
test();

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : ggrossetie, SphinxKnight
 Dernière mise à jour par : ggrossetie,