跳至內容

eslint/use-isnan 正確性

此規則預設為開啟。
🛠️ 此規則的部分違規情況可自動修正。

作用

禁止在沒有使用 isNaN() 呼叫的情況下檢查 NaN。

為什麼這不好?

在 JavaScript 中,NaN 是 Number 類型的一個特殊值。它用於表示 IEEE 二進位浮點算術標準指定的雙精度 64 位格式表示的任何「非數字」值。

由於 NaN 在 JavaScript 中是獨一無二的,它不等於任何值,包括它自己,因此與 NaN 的比較結果令人困惑。

  • NaN === NaN 或 NaN == NaN 的結果為 false
  • NaN !== NaN 或 NaN != NaN 的結果為 true

因此,請使用 Number.isNaN() 或全域 isNaN() 函式來測試值是否為 NaN。

範例

javascript
foo == NaN;
foo === NaN;
foo <= NaN;
foo > NaN;

參考資料

以 MIT 授權釋出。