ReferenceError: can't access lexical declaration 'X' before initialization
Message
ReferenceError: Use before delaration (Edge) ReferenceError: can't access lexical declaration `X' before initialization (Firefox) ReferenceError: 'x' is not defined (Chrome)
Type d'erreur
ReferenceError
Quel est le problème ?
Il y a eu un accès à une variable déclarée avec let ou const 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 avec un second let et elle n'est donc pas initialisée.
js
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 :
js
function test() {
let toto = 33;
if (true) {
toto = toto + 55;
}
}
test();