NaN在JavaScript中的含义是什么?

发表时间: 2023-10-23 10:49

在 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。

以下是一些示例:

console.log(NaN);                 // 输出: NaNconsole.log(typeof NaN);          // 输出: "number"console.log(NaN + 5);             // 输出: NaNconsole.log(NaN - NaN);           // 输出: NaNconsole.log(NaN === NaN);         // 输出: falseconsole.log(isNaN(NaN));          // 输出: trueconsole.log(isNaN("hello"));      // 输出: trueconsole.log(isNaN(123));          // 输出: false

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