4

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

3 回答 3

5

它与for 构造无关,for但与items 内部无关。

如果你喜欢

for (items in properties) {

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

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

于 2013-05-14T09:09:56.400 回答
4

正确的答案以及到处都有记录..

for (items in properties) { }

应该:

for (var items in properties) { }

(我知道这是 necroposting)

于 2016-05-10T09:07:48.143 回答
3

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

于 2013-10-05T17:11:19.103 回答