我在一段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 <5)
var
如果希望该值是本地的,则应始终使用。
object
不建议使用关键字作为变量,否则可能会在浏览器中发生未定义的行为。
同样,您通常应该避免应用任何被认为是全局范围本地的东西。
这不好:
for (varName in object) {
alert(varName + " is" + object[varName])
}
这是对的:
for (var varName in object) {
alert(varName + " is" + object[varName])
}
如果需要在全局范围内访问此值,则可能做错了。在全局范围内使用它也是没有用的,因为它只是varName中存在的最后一个值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句