JavaScript 中的 NaN 是什么?

2023-10-23 09:19:02 浏览数 (1)

在 JavaScript 中,NaN 是一个特殊的数值,表示非数字(Not-a-Number)。它是一个全局属性,通常作为一个无效或未定义的数值结果出现。

当进行数学运算失败或将非数字字符串转换为数字时,通常会得到 NaN。例如,以下情况会产生 NaN:

  • 将非数字字符串转换为数字:parseInt("hello") 或 Number("abc")
  • 0 除以 0 或任何产生无穷大的操作:0/0 或 Infinity - Infinity
  • 对非数字值进行数学运算:NaN 5 或 Math.sqrt(-1)

NaN 具有一些特殊的行为:

  • 任何与 NaN 进行数学运算的结果仍然是 NaN。
  • NaN 与任何值(包括自身)进行比较,结果都是 false。
  • 使用 isNaN() 函数可以检查一个值是否为 NaN。

以下是一些示例:

代码语言:javascript复制
console.log(NaN);                 // 输出: NaN
console.log(typeof NaN);          // 输出: "number"

console.log(NaN   5);             // 输出: NaN
console.log(NaN - NaN);           // 输出: NaN
console.log(NaN === NaN);         // 输出: false

console.log(isNaN(NaN));          // 输出: true
console.log(isNaN("hello"));      // 输出: true
console.log(isNaN(123));          // 输出: false

NaN 是一个特殊的数值,与任何其他值进行比较都不会相等,包括它本身。因此,要使用 isNaN() 函数来检查一个值是否为 NaN,而不是使用相等运算符。

0 人点赞