【发布时间】:2014-02-18 02:28:04
【问题描述】:
我在一段 JavaScript 逻辑中使用了 for in 循环。 我应该使用 var 关键字吗?
当我按照 W3School 的示例运行 for-in 循环时,如果没有 var,那么作为副作用,它会被定义为全局范围(窗口)上的属性:
(function () {
var object = {
a: 1,
b: 2
}
for (varName in object) {
alert(varName + " is" + object[varName])
}
})();
alert(window.varName) //Returns "b" !
//This returns undefined when the for-in is rewritten as for (var varName in object).
编辑:这里是上面代码的一个小提琴供您欣赏:http://jsfiddle.net/94uEh/
哪种是正确的首选形式? - 注意我希望支持 IE 8 (EcmaScript
【问题讨论】:
-
不要使用 W3Schools - 很多错别字和不良信息。这是一个更好的资源:@987654322@
-
RobH 是的,我完全同意。但是,Mozilla 文档包含一个非常相似的示例; "
for (variable in object) { ... }" -
是的 - 既没有定义
variable也没有定义object- 这是显示语法的伪代码;这些例子是正确的。
标签: javascript var for-in-loop