在for循环中声明的变量范围,javascript

菲利普·哈格隆德

我在Eclipse中遇到错误:

for (var i = 0; i < foo; i++) {
    ...
}
...
while (someCondition) {
    for (var i = 0; i < bar; i++) {
    ...
    }
}

循环使用相同的变量名。Eclipse给我警告'i' is already defined如果我在第二个for循环中删除var som,则不会发出警告。

AFAIK在for循环中声明的变量(i在这种情况下)与循环的作用域相同。

Eclipse是正确的吗?这些i变量是否在同一范围内?

阿玛丹

JavaScript中的局部变量的作用域为封闭函数。因此,两者i具有相同的范围。

为了显示,

function f() {
  ...
  for (var i = ...; ...; ...) {
    ...
  }
}

相当于

function f() {
  var i;
  ...
  for (i = ...; ...; ...) {
    ...
  }
}

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章