Eslint
规则 | Rules

use-isnan

isNaN()在检查时需要调用NaN(use-isnan)

"extends": "eslint:recommended"配置文件中的属性启用此规则。

在JavaScript中,NaN是一种特殊的Number类型值。它用于表示由IEEE标准的二进制浮点运算指定的双精度64位格式所表示的任何“非数字”值。

由于NaNJavaScript不同于任何东西(包括本身)在JavaScript中是独一无二的,因此比较的结果NaN令人困惑:

  • NaN === NaNNaN == NaN评估为假

  • NaN !== NaNNaN != NaN评估为真

因此,使用Number.isNaN()或全局isNaN()函数来测试值是否是NaN

规则细节

这条规则不允许比较'NaN'。

此规则的错误代码示例:

/*eslint use-isnan: "error"*/ if (foo == NaN) { // ... } if (foo != NaN) { // ... }

此规则的正确代码示例:

/*eslint use-isnan: "error"*/ if (isNaN(foo)) { // ... } if (!isNaN(foo)) { // ... }

版本

这条规则是在ESLint 0.0.6中引入的。

资源