Hoisting

wonyoung·2024년 3월 31일

Javascript

목록 보기
30/36

var 선언 위로
function var 밑으로
const let 화살표함수 그대로

JavaScript의 Temporal Dead Zone(TDZ)는 let 및 const 변수의 범위와 호이스팅과 관련된 JavaScript의 동작입니다. TDZ는 변수가 스코프 내에 있지만 아직 초기화되지 않아 접근할 수 없는 기간을 나타냅니다. 이는 var로 선언된 변수들이 호이스팅되고 자동으로 undefined 값으로 초기화되는 것과 대조됩니다.

TDZ가 let 및 const에 대해 어떻게 작동하는지 설명하겠습니다:

  1. 변수 선언: let이나 const로 변수를 선언하면, 이 변수는 선언된 블록 스코프 내에서만 존재합니다. 그러나, 실제 메모리에 할당되고 초기화되기 전까지는 TDZ 내에 있게 됩니다.

  2. TDZ 시작: 변수 선언 지점 이전에는 변수가 TDZ 내에 있으며, 이 기간 동안 변수에 접근하려고 하면 ReferenceError가 발생합니다. 이는 JavaScript가 변수를 아직 '존재하지 않는 것'으로 취급하기 때문입니다.

  3. 초기화 및 TDZ 종료: 변수가 초기화될 때 (즉, let a = 10;이 실행될 때 a에 10이 할당될 때), TDZ는 종료되고 변수가 정상적으로 사용될 수 있습니다.

var와 달리 let과 const는 호이스팅되지만, TDZ 때문에 선언 이전에 접근할 수 없습니다. 이는 코드를 더 예측 가능하게 만들고, 초기화되지 않은 변수에 의존하는 실수를 줄이는 데 도움이 됩니다.

profile
😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀

0개의 댓글