繁体   English   中英

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

[英]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值。 就像12 ,等等。

NaN是全局对象的属性。

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

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

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM