请问let和const声名的变量不是会产生作用死区吗?

请问let和const声名的变量不是会产生作用死区吗?

正在回答

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

1回答

同学你好,let和const声明的变量会产生暂存性死区;作用域链是用来查询变量的,即代码查找变量时,会沿着内层作用域->外层作用域->全局作用域的顺序查找;暂存性死区和作用域链并不冲突,比如下面的例子:

执行fn时,fn会形成一个作用域(简称fn作用域),然后fn内的函数b会执行,b执行也会形成一个作用域(简称b作用域),并且b作用域嵌套在fn作用域内,在b内会打印变量a,由于b作用域内没有声明变量a,所以会沿着作用域链到fn作用域内查找,而fn作用域内使用let声明了a,因此就会将该a打印出来:
http://img1.sycdn.imooc.com//climg/5fab48be0988bc2807310364.jpg

祝学习愉快!

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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