Использование ==
для сравнения с нулем просто не является ошибкой или опасностью при сравнении значения, которое гарантированно является числом. Например:
var arr = ["foo"];
var arrIsEmpty = (arr.length == 0);
Я обычно использую ==
в таких ситуациях, и это чисто стилистическое решение. Я хотел бы, чтобы JSHint уважал мои хорошо информированные пожелания.
Вы ведь знаете о варианте eqeqeq
, верно? Вот откуда эта ошибка, установка ее на false освободит вас от этого случая. Или вы ищете что-то более конкретное, например, подавление сравнений только с 0
(а не сравнений с другими значениями)?
eqeqeq - общий случай. Кажется, есть отдельная проверка для сравнения с 0, которая жалуется, даже если eqeqeq ложно.
Я действительно хочу иметь возможность подавить все формы жалоб от JSHint на использование == и! =, Но это предотвращает сравнение с 0.
МММ ясно. Связанный код здесь, он определенно вызывает это сравнение (среди прочего):
https://github.com/jshint/jshint/blob/6140ade7437799e182347bf2d39ec68c3c3d0263/src/jshint.js#L2201 -L2215
https://github.com/jshint/jshint/blob/6140ade7437799e182347bf2d39ec68c3c3d0263/src/jshint.js#L1338 -L1346
Вы можете отключить это предупреждение по его коду.
Для других, которым может быть трудно использовать ответ valueof, установка "-W041": false
кажется, помогает.
Спасибо @privman
К вашему сведению, я также нашел более подробную информацию здесь
Есть ли мотивация для сохранения в силе предупреждений W041
когда "eqeqeq": false
?
Они фактически запрещают использование ==
и !=
в уязвимых ситуациях.
Самый полезный комментарий
Для других, которым может быть трудно использовать ответ valueof, установка
"-W041": false
кажется, помогает.