暂时性死区(Temporal Dead Zone,简称 TDZ)是 JavaScript 中 let
和 const
变量声明的一种行为。当使用 let
或 const
声明变量时,这些变量在声明之前无法访问,即便是声明了该变量,但只要在声明之前尝试访问它,就会抛出 ReferenceError
错误。这段时间就称为暂时性死区。
具体来说,从作用域开始到变量声明的这段时间,变量处于暂时性死区。只有在变量实际被声明并初始化之后,才能正常访问它。
举个例子:
console.log(a); // ReferenceError: Cannot access 'a' before initialization
let a = 3;
console.log(a); // 3
在这个例子中,a
的作用域是整个 console.log(a)
语句的上方,但在 let a = 3;
之前访问 a
会触发暂时性死区,导致抛出 ReferenceError
错误。
暂时性死区的引入是为了避免在变量声明之前访问它们,确保代码更加安全和可预测。