JS写for-of/in循环的注意事项

菜鸟教程 误导了,之前我写for-of/in循环中的迭代变量一直都是不加标识符的
这是菜鸟教程中关于JS的一个教程
也就是直接就for(x in person)
然后我今天在看《深入理解es6》的时候注意到了let
在这里插入图片描述
突然想到一点,之前的for循环却是用了let的。
for(let i = 0; i++; i <=10),
如果写成for(i = 0; i++; i<=10), 其实是创建了一个全局变量 i ,循环结束了,这个 i 也不会被销毁,应该会等于11.(写循环的时候被坑过)。
既然for循环都要加let,无疑for-of或者for-in也应该要加let
为了验证这个猜想,我使用了严格模式,果然是报错了
在这里插入图片描述
然后验证了一下不加let是否声明了全局变量
在这里插入图片描述
num在循环外也没被销毁,而且值是3.
最后测试了一下标准写法
在这里插入图片描述
此处n is not defined证实了猜想,循环结束n销毁了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值