在Javascript中,值0/0返回NaN。但是为什么typeof运算符将此值作为Number类型返回?我期望typeof也返回NaN。
let value = 0/0
console.log(value, typeof(value))
控制台返回:NaN,“数字”
答案 0 :(得分:2)
因为NAN是一个数字!大声笑一定要爱JS!
typeof(NaN)
//= number
来自https://javascriptrefined.io/nan-and-typeof-36cd6e2a4e43
的详细说明ECMAScript标准指出,数字应为IEEE-754浮点数据。这包括Infinity,-Infinity和NaN。
根据定义,NaN是具有不确定数字结果的操作的返回值。因此,为什么在JavaScript中,它不仅是全局对象的一部分,而且还是Number对象的一部分:Number.NaN。它仍然是数字数据类型,但未定义为实数。