1

为什么 jshint 没有报告以下代码的 forin (hasOwnProperty) 错误?jslint 会报告错误,但 jshint 不会。

/*jshint forin: true */

(function () {
    "use strict";

    var obj = {a: 1, b: 2}, i = null;

    for (i in obj) {
        if (i === 0) {
            console.log('blah...');
        }
    }
}());
4

1 回答 1

2

这是来自 JSHint 的相关代码片段(针对格式稍作修改):

if (
    state.option.forin && 
    s && 
    (s.length > 1 || typeof s[0] !== "object" || s[0].value !== "if")
) {
    warning("W089", this);
}

重要的部分是s[0].value !== "if"for...in如果主体的第一个语句是语句,则 JSHint 不会引发错误if,无论该语句的条件如何。

于 2013-06-03T08:44:12.907 回答