jshint нет ошибки для forin (hasOwnProperty)

Почему jshint не сообщает об ошибке inin (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 ответ

Решение

Вот соответствующий фрагмент кода из JSHint (слегка измененный для форматирования):

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

Важная часть s[0].value !== "if", JSHint не выдаст ошибку, если первое утверждение for...in тело это if заявление, независимо от условия этого заявления.

Другие вопросы по тегам