ReferenceError: can't access lexical declaration`X' before initialization
Fehlermeldung
ReferenceError: can't access lexical declaration `X' before initialization (Firefox) ReferenceError: 'x' is not defined (Chrome)
Fehlertyp
Was ist falsch gelaufen?
Auf eine lexikalische Variable wurde zugegriffen bevor sie deklariert wurde. Das passiert in Blockstatements, in denen auf let
oder const
Variablen zugegriffen wird, bevor sie definiert wurden.
Beispiele
Falsche Fälle
In diesem Fall wird die Variable "foo" in einem Blockstatement mit let
neu deklariert.
function test() {
let foo = 33;
if (true) {
let foo = (foo + 55);
// ReferenceError: can't access lexical
// declaration `foo' before initialization
}
}
test();
Richtige Fälle
Um "foo" im if-Statement zu ändern, muss let
entfernt werden, welche die Neudeklaration verursacht.
function test(){
let foo = 33;
if (true) {
foo = (foo + 55);
}
}
test();