jinint没有错误forin(hasOwnProperty)

时间:2013-06-03 08:09:05

标签: jslint jshint hasownproperty

为什么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...');
        }
    }
}());

1 个答案:

答案 0 :(得分: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正文的第一个语句是if语句,则JSHint不会引发错误,无论该语句的条件如何。