为什么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...');
}
}
}());
答案 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不会引发错误,无论该语句的条件如何。