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



我使用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...
    }
}

正确答案随处可见。

for (items in properties) { }
应:

for (var items in properties) { }

(我知道这是necroposting)

for无关,而与items for结构中有关。

如果你像

for (items in properties) {

items之前没有定义,那么items将是一个全局变量。由于JSHint会报错,您可能不会在for结构的作用域中声明items它,即使您让它在示例代码中看起来像这样。

如果真的定义了,那么我建议用JSHint:-)

提交一个bug报告。

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

最新更新