Подтвердить что ты не робот

Почему jshint жалуется на разлад в выражении?

При передаче следующего кода в jshint он считает, что строка-строка в условии if-bad является плохим, говоря "Плохая линейная ошибка перед" && ".

if (1 == 1 
        && true) {
    console.log("hello world");
}

Тем не менее, наличие очереди после '& &' Это хорошо.

if (1 == 1 && 
        true) {
    console.log("hello world");
}

Почему jshint считает первое неправильным, а последнее - правильным?

4b9b3361

Ответ 1

Согласно обсуждение GitHub:

Это может вызвать проблемы, связанные с вставкой двоеточия и старыми парсерами javascript. Проверьте широкий диапазон браузеров.

Эта проверка может быть отключена с помощью laxbreak:true.

Опция laxbreak находится на пути к устареванию, но я не уверен, изменится ли поведение jshint по умолчанию.

Ответ 2

Создатель JSHint, вероятно, не любит такую ​​упаковку и предпочитает && в первой строке, которая кажется гораздо более распространенной:

Основная причина этого соглашения заключается в том, что оператор дает понять, что линия является продолжением предыдущей строки. С оператором перед разрывом линии это гораздо труднее обнаружить.

На самом деле проблема в том, о чем вы спрашиваете о Github: https://github.com/jshint/jshint/issues/557