创建全局'for'变量。应该是'for(var items ......')

时间:2013-05-14 09:02:29

标签: javascript jslint jshint

我正在使用jshint。任何人都可以告诉我为什么它将“for”关键字视为全局变量?

  

创建全局'for'变量。应该是'for(var items ...'

这是循环:

//items and properties are defined above...
var items = null, properties = someObject;

//code here is properly terminated with ; "semicolon"

for (items in properties) {
    if (properties.hasOwnProperty(items)) {
        //some code here...
    }
}

3 个答案:

答案 0 :(得分:4)

它与for无关,但在 for for构造中与items 无关。

如果你喜欢

for (items in properties) {
之前未定义

items,那么items将是一个全局变量。由于JSHint抱怨,您可能不会在for构造的范围内声明items,即使您在示例代码中看起来像这样。

如果确实已定义,那么我建议使用JSHint提交错误报告: - )

答案 1 :(得分:4)

到处都记录了正确答案..

for (items in properties) { }

应该是:

for (var items in properties) { }

(我知道这是necroposting)

答案 2 :(得分:3)

这似乎是JSHint中的一个错误:https://github.com/jshint/jshint/issues/1016