Message
ReferenceError: can't access lexical declaration `X' before initialization (Firefox) ReferenceError: 'x' is not defined (Chrome)
Error type
무엇이 잘못 되었을까요?
변수가 초기화 되기 전에 엑세스가 되어버립니다. 이 문제는 let 또는 const 선언이 정의 되기 전에 엑세스되는 모든 block 문에서 발생합니다.
Examples
잘못된 경우
이 경우에 변수 "foo"는 let
을 사용하여 block 문에서 다시 선언됩니다.
function test() { let foo = 33; if (true) { let foo = (foo + 55); // ReferenceError: can't access lexical // declaration `foo' before initialization } } test();
올바른 경우
if 문에서 "foo"를 변경하려면 재 선언을 발생시키는 let
을 제거해야합니다.
function test(){ let foo = 33; if (true) { foo = (foo + 55); } } test();