현재 버전

일단 let은 var과 달리 블록레벨스코프를 가집니다,

때문에 let foo = 1; 부분은 아래 블록과는 연관되어지는 부분이 없습니다.

var은 선언과 동시에 초기화(= undefined)되지만 let은 선언과 동시에 초기화되지 않습니다.

초기화 단계로 넘어가지 않았기 때문에 TDZ 에 있는 변수 foo는 Reference Error가 나오게 됩니다.


수정 이력

2021-04-12 01:41:56 에 아래 내용에서 변경 됨 #1

일단 let은 var과 달리 블록레벨스코프를 가지고, var은 선언과 동시에 초기화(= undefined)되지만 let은 선언과 동시에 초기화되지 않습니다. 초기화 단계로 넘어가지 않았기 때문에 TDZ 에 있는 변수 foo는 Reference Error가 나오게 됩니다.