在代码块内(let的声明范围就是{}内部,下面代码let的作用范围就是function内部),使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)
function fun(){
m=20; //报错
let m; //函数在解析到这时,发现了let语句,
//就将这个函数变为了一个m的暂时性死区,
//在此之前的m不允许被赋值
console.log(m);
}
fun();