一尘不染

JavaScript的“ for-in”循环中是“ var”还是没有“ var”?

javascript

for-in用JavaScript
编写循环的正确方法是什么?浏览器不会对我在此处显示的两种方法提出任何投诉。首先,有一种方法x可以明确声明迭代变量:

for (var x in set) {
    ...
}

另外,这种方法更自然,但对我而言似乎不正确:

for (x in set) {
    ...
}

阅读 323

收藏
2020-05-01

共1个答案

一尘不染

使用var,它会减小变量的范围,否则变量将查找最接近的闭包以查找var语句。如果找不到,var则表示它是全局的(如果处于严格模式下usingstrict,则全局变量将引发错误)。这可能会导致如下问题。

function f (){
    for (i=0; i<5; i++);
}
var i = 2;
f ();
alert (i); //i == 5. i should be 2

如果您var i在for循环中编写警报,则会显示2

2020-05-01