Почему jshint жалуется на разлад в выражении?
При передаче следующего кода в jshint он считает, что строка-строка в условии if-bad является плохим, говоря "Плохая линейная ошибка перед" && ".
if (1 == 1
&& true) {
console.log("hello world");
}
Тем не менее, наличие очереди после '& &' Это хорошо.
if (1 == 1 &&
true) {
console.log("hello world");
}
Почему jshint считает первое неправильным, а последнее - правильным?
Ответы
Ответ 1
Согласно обсуждение GitHub:
Это может вызвать проблемы, связанные с вставкой двоеточия и старыми парсерами javascript. Проверьте широкий диапазон браузеров.
Эта проверка может быть отключена с помощью laxbreak:true
.
Опция laxbreak
находится на пути к устареванию, но я не уверен, изменится ли поведение jshint по умолчанию.
Ответ 2
Создатель JSHint, вероятно, не любит такую упаковку и предпочитает &&
в первой строке, которая кажется гораздо более распространенной:
Основная причина этого соглашения заключается в том, что оператор дает понять, что линия является продолжением предыдущей строки. С оператором перед разрывом линии это гораздо труднее обнаружить.
На самом деле проблема в том, о чем вы спрашиваете о Github: https://github.com/jshint/jshint/issues/557