Number.NaN

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

Number.NaN 静态数据属性表示“非数字”(Not-A-Number),它等同于 NaN。有关 NaN 行为的更多信息,请参阅 全局属性的描述

试一试

function clean(x) {
  if (x === Number.NaN) {
    // Can never be true
    return null;
  }
  if (isNaN(x)) {
    return 0;
  }
}

console.log(clean(Number.NaN));
// Expected output: 0

数字值 NaN

Number.NaN 的属性特性
可写
可枚举
可配置

描述

因为 NaNNumber 的一个静态属性,所以您总是使用 Number.NaN 来访问它,而不是将其作为数字值的一个属性来访问。

示例

检查值是否为数字

js
function sanitize(x) {
  if (isNaN(x)) {
    return Number.NaN;
  }
  return x;
}

规范

规范
ECMAScript® 2026 语言规范
# sec-number.nan

浏览器兼容性

另见