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

futlib:

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

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

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

for (x in set) {
    ...
}
加布里埃尔·拉马斯(Gabriel Llamas):

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

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

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

JavaScript范围界定和提升

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章