暂时性死区 理解
let 和 const 声明的变量不存在变量提升,其作用域都是块级作用域,凡是在声明变量之前使用变量就会报错,所以,在代码块内,使用let
命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)。
if (true) {
// 死区开始
lzp = 'lut'; // ReferenceError
console.log(lzp); // ReferenceError
// 开始声明变量,死区结束
let lzp;
console.log(lzp); // undefined
lzp = 520;
console.log(lzp); // 520
}