关于暂时性死区的变量提升问题

关于暂时性死区的变量提升问题

https://img1.sycdn.imooc.com//climg/62807c2809e94df015720766.jpg

老师,不是说let声明的不会提升么?在函数内部先输出a,此时应该还不知道内部用let再声明赋值了一次才对。那怎么还会暂时性死区呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕慕子 2022-05-15 13:12:21

同学你好,对于你的问题解答如下:

1、let声明的变量不会提升

2、因为代码在真正执行之前会进行预解析,虽然let声明的变量不会提升,但是预解析阶段,已经知道这里使用let,而ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量或常量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量或常量,就会报错。总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”。

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师