"일시적 접근 불가 구역"이라고 할 수 있음.
let과 const로 선언한 변수가 선언은 됐지만 아직 초기화되지 않은 상태.
// TDZ 시작
console.log(name); // ReferenceError
let name = "John"; // TDZ 끝
// var는 TDZ가 없음
console.log(age); // undefined (에러가 안 남)
var age = 25;
// let은 TDZ가 있음
console.log(name); // ReferenceError
let name = "John";
function example() {
// TDZ 시작
console.log(name); // ReferenceError
let name = "John"; // TDZ 끝
console.log(name); // "John" (정상 작동)
}
// 이렇게 X
console.log(x);
let x = 5;
// 이렇게 O
let x = 5;
console.log(x);
TDZ는 코드의 안전성을 높여주는 기능이라고 볼 수 있음.
변수를 선언하기 전에 사용하는 실수를 방지함.