javascript - for循环问题

查看:109
本文介绍了javascript - for循环问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

解决方案

var 可以重复定义。

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

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

var 不会污染全局变量吗?

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

这篇关于javascript - for循环问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆