为了账号安全,请及时绑定邮箱和手机立即绑定

for循环问题

for循环问题

四季花海 2018-12-19 18:13:14
for(var i=0;i<10;i++){};console.log(i) //10这段代码为什么循环体外面能访问到里面定义的i?那如果像下面这样出现两个相同的循环又不会报错?按道理第二次var i=0;应该会报错的啊?for(var i=0;i<10;i++){};...for(var i=0;i<10;i++){};如果上面用let我还可以理解,求解为什么,用var 不会污染全局变量吗??for(let i=0;i<10;i++){};console.log(i) //undefined
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

var 可以重复定义。

js 变量只有两个作用于:全局函数

js 并没有块级作用域,所以即使写在 if/else/while/for 里面的,或者写在大括号里面的,都不是块级作用域(因为js 根本就没有块级作用域),所以你第一代代码的 i 是全局的。

用 var 不会污染全局变量吗?

确实污染全局变量。但是变量可以重复使用 var 进行定义,所以不会报错。


查看完整回答
反对 回复 2019-01-18
  • 1 回答
  • 0 关注
  • 498 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信