[英]JavaScript: what is NaN, Object or primitive?
什么是NaN,对象或原始?
NaN - 不是数字
这是一个原始的。 您可以通过多种方式办理登机手续:
typeof NaN
给出“数字”,而不是“对象”。
添加一个属性,它就消失了。 NaN.foo = "hi"; console.log(NaN.foo) // undefined
NaN instanceof Number
给出false(但我们知道它是一个数字,所以它必须是一个原语)。
NaN成为一个对象是没有意义的,因为像0 / 0
这样的表达式需要导致NaN
,而数学运算总是会产生基元。 将NaN作为对象也意味着它不能作为假值,它在某些情况下会起作用。
NaN
是原始的Number值。 就像1
, 2
,等等。
NaN是全局对象的属性。
NaN的初始值是Not-A-Number - 与Number.NaN的值相同。 在现代浏览器中,NaN是一种不可配置的不可写属性。 即使不是这种情况,也要避免覆盖它。
在程序中使用NaN是相当罕见的。 它是Math函数失败时返回的值(Math.sqrt(-1))或尝试解析数字的函数失败(parseInt(“blabla”))。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.