TDZ - Temporal Dead Zone

ROCKBELL·2022년 11월 9일
0

자바스크립트

목록 보기
9/25

TDZ

TDZ(Temporal Dead Zone)란 일시적인 사각지대를 뜻하며, Scope의 시작지점 부터 변수 초기화 지점까지의 구간을 뜻합니다

변수의 생성 단계

선언 단계 (Declaration)

변수를 실행 컨텍스트변수 객체 에 등록하는 단계

TDZ 구간

선언단계와 초기화단계 사이에 메모리가 할당되기 전 단계

초기화 단계 (Initialization)

실행 컨택스트변수 객체에 등록된 변수를 위한 메모리를 만드는 단계

할당 단계 (Assignment)

초기화된undefined 메모리에 다른 값을 할당하는 단계

var 키워드 변수의 생성 단계

선언과 초기화 단계가 동시에 진행된다

let, const 키워드 변수의 생성 단계

선언과 초기화 단계가 분리되어 진행된다

  • 변수는 모두 호이스팅이 발생한다 (실행 컨텍스트에 변수객체는 등록되었으니)
  • 하지만, let, const 키워드로 선언된 변수는 TDZ을 거치기때문에 아직 메모리가 할당되지 않은 상태에서 접근을 하게되는 것이라 Reference 에러가 발생한다
profile
luv it

0개의 댓글