TDZ (Temporal Dead Zone)
일시적 사각지대
변수가 선언 된 후, 초기화 되기 전까지의 구간을 의미한다.
변수가 선언되기 전이거나 초기화되기 이전인 상태에서의 변수 사용을 허용하지 않는다.
TDZ 구간에서 변수를 참조하는 경우 Reference Error
가 발생하게 된다.
변수
변수는 선언 -> 초기화 -> 할당 단계를 거친다.
- 선언 단계 : JS 엔진에 변수 객체를 등록하는 단계
- 초기화 단계 : JS 엔진에 등록한 변수의 메모리 공간을 확보하는 단계
- 할당 단계 : 할당 연산자
=
를 사용하여 변수에 실제 값을 할당하는 단계
TDZ에 영향을 받는 구문 : let const class
TDZ에 영향을 받지 않는 구문 : var function import