在 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,而不是使用相等运算符。