eslint/use-isnan 正确性
它的作用
禁止在未调用 isNaN() 的情况下检查 NaN 值。
为什么这是不好的?
在 JavaScript 中,NaN 是 Number 类型的一个特殊值。 它用于表示由二进制浮点数算术标准(IEEE 标准)定义的 64 位双精度格式中的任意“非数字”值。
由于在 JavaScript 中 NaN 是唯一的——它与任何值都不相等,包括其自身——因此对 NaN 进行比较的结果会令人困惑:
NaN === NaN或NaN == NaN的结果为 falseNaN !== NaN或NaN != NaN的结果为 true
因此,应使用 Number.isNaN() 或全局 isNaN() 函数来检测一个值是否为 NaN。
示例
此规则的 错误 代码示例:
javascript
foo == NaN;
foo === NaN;
foo <= NaN;
foo > NaN;配置
此规则接受一个配置对象,包含以下属性:
enforceForIndexOf
type: boolean
default: false
是否禁止将 NaN 作为 indexOf 和 lastIndexOf 方法的参数
enforceForSwitchCase
type: boolean
default: true
是否禁止在 switch 语句的 case 条件和判别式中使用 NaN
如何使用
通过配置文件或 CLI 启用此规则的方法如下:
json
{
"rules": {
"use-isnan": "error"
}
}bash
oxlint --deny use-isnan