typeof NaN 的结果
理解 NaN 的类型和特殊性质
问题
typeof NaN 的结果是什么?
解答
NaN 表示”不是一个数字”(Not a Number),是 JavaScript 中的一个特殊值,用于表示数学运算失败的结果。
typeof NaN; // "number"
虽然 NaN 的字面意思是”不是数字”,但它的类型却是 "number"。这是因为 NaN 是数字类型中的一个特殊”警戒值”(sentinel value),专门用来标识数学运算的错误情况。
NaN 的特殊性质
NaN 是 JavaScript 中唯一一个不等于自身的值:
NaN === NaN; // false
NaN !== NaN; // true
这种非自反(non-reflexive)特性使得 NaN 无法通过相等运算符来判断。如果需要检测一个值是否为 NaN,应该使用 Number.isNaN() 或 isNaN() 方法。
Number.isNaN(NaN); // true
Number.isNaN(123); // false
关键点
typeof NaN返回"number",因为 NaN 是数字类型的特殊值- NaN 用于表示数学运算失败的结果
- NaN 是唯一不等于自身的值(
NaN !== NaN为true) - 应使用
Number.isNaN()来检测 NaN,而不是相等运算符
目录