Skip to content
← Back to rules

eslint/no-compare-neg-zero 正しさ

This rule is turned on by default.
🛠️💡 An auto-fix and a suggestion are available for this rule for some violations.

何を行うか

-0 との比較を禁止する

なぜ問題なのか

このルールは、-0 との比較を試みるコードに対して警告すべきである。なぜなら、そのような比較は意図した通りに動作しないからである。具体的には、x === -0 というコードは +0-0 の両方で真となる。著者はおそらく Object.is(x, -0) と意図していたはずである。

このルールに違反する不適切なコードの例:

javascript
if (x === -0) {
  // doSomething()...
}
javascript
if (-0 > x) {
  // doSomething()...
}

このルールに準拠する適切なコードの例:

javascript
if (x === 0) {
  // doSomething()...
}
javascript
if (Object.is(x, -0)) {
  // doSomething()...
}
javascript
if (0 > x) {
  // doSomething()...
}

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、次のように使用できます:

json
{
  "rules": {
    "no-compare-neg-zero": "error"
  }
}
bash
oxlint --deny no-compare-neg-zero

参照