在Javascript中,值0/0返回NaN。但是为什么typeof运算符将此值作为Number类型返回?

时间:2019-05-16 16:11:21

标签: javascript numbers nan

在Javascript中,值0/0返回NaN。但是为什么typeof运算符将此值作为Number类型返回?我期望typeof也返回NaN。

let value = 0/0
console.log(value, typeof(value))

控制台返回:NaN,“数字”

1 个答案:

答案 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。它仍然是数字数据类型,但未定义为实数。