uxtry

dic: TDZ(Temporal Dead Zone) 본문

코딩단어설명 (dic:)

dic: TDZ(Temporal Dead Zone)

uxtry 2024. 10. 29. 13:29

Temporal Dead Zone을 바라보다 with chatGPT

 

TDZ(Temporal Dead Zone)는 자바스크립트에서 let과 const키워드로 선언된 변수가 호이스팅 된 이후, 실제 초기화되기 전까지 변수를 참조할 수 없는 구간을 의미합니다. 이는 코드의 예측 가능성을 높이고 오류를 방지하기 위한 메커니즘입니다.

 

TDZ가 발생하는 이유

var로 선언된 변수는 undefined로 초기화되어 호이스팅 후 초기화 되지 않은 상태에서도 접근할 수 있습니다. 반면, let과 const는 변수가 실제로 선언된 시점에 도달하기 전까지 접근할 수 없도록 설계되어 있습니다. 이렇게 해야 사용자가 변수를 참조하는 오류를 예방할 수 있습니다.

 

TDZ 예시

console.log(a); //ReferenceError: 초기화전에 변수'a'에 접근할 수 없다.
let a =3;

function example(){
	console.log(b); //RefrenceError: 초기화전에 변수'b'에 접근할 수 없다.
    let b = 5;
}

 

위 예제에서 변수 a와 b는 선언 전에 접근하려고 하면 refernceError가 발생합니다. let과 const로 선언된 변수는 코드의 선언 시점에 도달하기전까지는 TDZ에 머물러 있는 상태입니다.

 

TDZ와 let및 const의 차이점

  • let: TDZ가 끝난 후, 재할당이 가능하지만 선언 전에는 접근할 수 없습니다.
  • const: TDZ가 끝난 후, 반드시 초기화 되어야 하며, 이후 재할당이 불가능합니다.

TDZ는 선언 전 접근을 방지해 코드의 안전성을 높여주는 역활을 하므로, 코드를 작성할 때 변수를 선언 위치보다 앞서 사용하지 않도록 유의하는것이 중요합니다.

 

 

 

 

 

 

 

 

'코딩단어설명 (dic:)' 카테고리의 다른 글

dic: 동기와 비동기  (5) 2024.11.04
dic: 호이스팅(hoisting)  (0) 2024.10.29