老师看一下
来源:2-1 新的声明方式let(上)
qq_慕运维6460539
2021-04-14
老师,我这样理解有问题吗?首先无论是var还是let都是存在提升的(提升是JS语言中对于变量声明的基本特性),不同的是JS预解析时,会对var声明变量创建出来并赋值undefined,而对let声明变量也会创建出来但不进行词法绑定。所以当先使用后声明时,var会提示undefined,let会提示ReferenceError。
而暂时性死区就是以上流程机制的一种体现
写回答
1回答
-
谢成
2021-04-15
在我的理解中,let是不存在变量提升的,js中如果声明变量不赋值对应的就是undefined,而不是ReferenceError。
而暂时性死区指的是块级作用域内存在let,它所声明的变量就绑定这个区域,不再受外部的影响。ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。
00
相似问题