typeof NaN 的结果是 "number"。
解释:
NaN是 “Not-a-Number” 的缩写,表示“不是一个数字”。- 尽管它的名字是“不是数字”,但在 JavaScript 的类型系统中,
NaN被归类为number类型。 - 这是因为
NaN是数学运算中无效或无法表示的结果,它本身是一个特殊的数字值,而不是一个独立的类型。
示例:
typeof NaN // "number"
typeof 123 // "number"
typeof Infinity // "number"
typeof -Infinity // "number"
// NaN 的产生场景
0 / 0 // NaN
Math.sqrt(-1) // NaN
parseInt("hello") // NaN
// 虽然 typeof 是 "number",但 NaN 不等于任何值(包括自己)
NaN === NaN // false
NaN == NaN // false
如何检查一个值是否为 NaN?
由于 NaN !== NaN,不能用 === 检查。应使用:
isNaN(value) // 会先尝试转换类型(不推荐)
Number.isNaN(value) // 只有当 value 确实是 NaN 时才返回 true(推荐)
总结:
NaN 是一个特殊的数字值,表示无效的数学运算结果,因此 typeof NaN 返回 "number"。
THE END


