什么是NaN,对象或原语?
NaN - 不是数字
答案 0 :(得分:8)
这是一个原始的。您可以通过多种方式查询:
typeof NaN
给出“数字”,而非“对象”。
添加一个属性,它就会消失。 NaN.foo = "hi"; console.log(NaN.foo) // undefined
NaN instanceof Number
给出错误(但我们知道它是一个数字,所以它必须是一个原语)。
NaN作为一个对象是没有意义的,因为像0 / 0
这样的表达式需要导致NaN
,而数学运算总是会产生基元。将NaN作为对象也意味着它不能作为假值,在某些情况下它会起作用。
答案 1 :(得分:4)
NaN
是一个原始的Number值。就像1
,2
等
答案 2 :(得分:1)
NaN是全局对象的属性。
NaN的初始值是Not-A-Number - 与值相同 Number.NaN。在现代浏览器中,NaN是不可配置的, 不可写财产。即使不是这种情况,也要避免 压倒它。
在程序中使用NaN是相当罕见的。它是返回的值 当Math函数失败(Math.sqrt(-1))或函数尝试时 解析数字失败(parseInt(“blabla”))。