let、const声明的变量、具有变量提升,但不赋值不能使用,不会预解析(TDZ);class定义之前调用会产生暂时性死区 使用let、const声明的变量,从一开始就形成了封闭作用域,在声明变量之前变量已经存在,但无法使用;只有等到let、const声明变量的那一行代码出现,才可以获取使用变量 当前作用域顶部到该变量声明位置中间的部分,都是该变量的死区;在死区中,禁止访问该变量 原理: let/const在进入块级作用域后,会因为提升的原因先创建,但不会被初始化,直到声明语句执行的时候才被初始化; 初始化的时候如果使用let声明的变量没有赋值,则会默认赋值为undefined,而const必...