为什么用for(let i =0;i<3;i++){}不存在暂存死区的问题

为什么用for(let i =0;i<3;i++){}不存在暂存死区的问题

如题,我这里可以理解为let i =1 { .. },let i =2{ ... },那这样想不就是存在暂存死区的问题吗??为什么花括号内部还能获得i的值??

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

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

2回答
好帮手慕星星 2020-07-09 14:21:23

同学你好,前面老师说过了,可能没有详细解释,让同学疑惑。

http://img1.sycdn.imooc.com//climg/5f06b6cd0983103607120222.jpg

把for循环整体看成一个块级作用域,也就是for后面的条件和for执行的内容在一个作用域里面。这样就好理解了。

祝学习愉快!

好帮手慕星星 2020-07-09 12:05:24

同学你好,{}花括号形成的是块级作用域。在for循环的条件中是()小括号,使用let声明变量,是作用到后面的{}中,形成封闭的作用域。{}中正常使用,{}外面获取不到

http://img1.sycdn.imooc.com//climg/5f0697b0095d555803990118.jpg

http://img1.sycdn.imooc.com//climg/5f0697ba0930df6005290125.jpg

祝学习愉快!

  • 提问者 慕雪9296518 #1
    你这跟没说一样,我的意思就是问let又不是在{}中声明的,怎么{}外就获取不到呢,在我看来()中就像是在{}外是一个道理,我问的就是这个意思,你又直接把结果说一遍我怎么明白是什么意思,我想知道是为什么()中声明let i外面获取不到反而里面获取得到
    2020-07-09 13:57:19
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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