JavaScript:什么是NaN,Object或原语?

时间:2012-05-08 12:21:25

标签: javascript nan

什么是NaN,对象或原语?

NaN - 不是数字

3 个答案:

答案 0 :(得分:8)

这是一个原始的。您可以通过多种方式查询:

  • typeof NaN给出“数字”,而非“对象”。

  • 添加一个属性,它就会消失。 NaN.foo = "hi"; console.log(NaN.foo) // undefined

  • NaN instanceof Number给出错误(但我们知道它是一个数字,所以它必须是一个原语)。

NaN作为一个对象是没有意义的,因为像0 / 0这样的表达式需要导致NaN,而数学运算总是会产生基元。将NaN作为对象也意味着它不能作为假值,在某些情况下它会起作用。

答案 1 :(得分:4)

NaN是一个原始的Number值。就像12

一样

答案 2 :(得分:1)

  

NaN是全局对象的属性。

     

NaN的初始值是Not-A-Number - 与值相同   Number.NaN。在现代浏览器中,NaN是不可配置的,   不可写财产。即使不是这种情况,也要避免   压倒它。

     

在程序中使用NaN是相当罕见的。它是返回的值   当Math函数失败(Math.sqrt(-1))或函数尝试时   解析数字失败(parseInt(“blabla”))。

Reference