W3cubDocs

/JavaScript

Errors: Cant access lexical declaration before init

Message

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

Error type

ReferenceError

What went wrong?

A lexical variable was accessed before it was initialized. This happens within any block statements, when a let or const is accessed before it's initialization.

Examples

Invalid cases

In this case, the variable "foo" is redeclared in the block so isn't initialized.

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

Valid cases

To make "foo" change inside the if statement you can't redeclare inside the new block statement.

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

See also

© 2005–2017 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cant_access_lexical_declaration_before_init