posts
FE
02-javascript
Tdz

TDZ (Temporal Dead Zone)

일시적 사각지대

변수가 선언 된 후, 초기화 되기 전까지의 구간을 의미한다.

변수가 선언되기 전이거나 초기화되기 이전인 상태에서의 변수 사용을 허용하지 않는다.

TDZ 구간에서 변수를 참조하는 경우 Reference Error가 발생하게 된다.


변수

변수는 선언 -> 초기화 -> 할당 단계를 거친다.

  1. 선언 단계 : JS 엔진에 변수 객체를 등록하는 단계
  2. 초기화 단계 : JS 엔진에 등록한 변수의 메모리 공간을 확보하는 단계
  3. 할당 단계 : 할당 연산자=를 사용하여 변수에 실제 값을 할당하는 단계

TDZ에 영향을 받는 구문 : let const class

TDZ에 영향을 받지 않는 구문 : var function import