==
を使用してゼロと比較することは、数値であることが保証されている値を比較するときに、エラーや危険ではありません。 例えば:
var arr = ["foo"];
var arrIsEmpty = (arr.length == 0);
私はこれらの状況で==
を使用する傾向があり、それは純粋に文体的な決定です。 JSHintには、十分な情報に基づいた希望を尊重していただきたいと思います。
あなたはeqeqeq
オプションを知っていますよね? これがこのエラーの原因です。falseに設定すると、このケースから解放されます。 または、 0
との比較のみを抑制する(他の値との比較は抑制しない)など、より具体的なものを探していますか?
eqeqeqが一般的なケースです。 eqeqeqがfalseであっても、0と比較するための別のチェックが文句を言うようです。
私が本当に望んでいるのは、==と!=の使用に関する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
参考までに、ここでも詳細を見つけまし
"eqeqeq": false
ときにW041
警告を有効にしておく動機はありますか?
影響を受ける状況での==
および!=
使用を効果的に禁止します。
最も参考になるコメント
valueofの答えを利用するのに苦労しているかもしれない他の人にとっては、
"-W041": false
設定することでうまくいくようです。