首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript:什么是NaN,Object还是primitive?

JavaScript:什么是NaN,Object还是primitive?
EN

Stack Overflow用户
提问于 2012-05-08 20:21:25
回答 3查看 2.6K关注 0票数 6

什么是NaN,对象还是原语?

NaN -不是数字

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-08 20:23:26

NaN是一个原始数值。就像12等。

票数 5
EN

Stack Overflow用户

发布于 2012-05-08 20:32:22

这是一个原始人。您可以通过多种方式进行签入:

  • typeof NaN给出的是“数字”,而不是“对象”。
  • 添加一个属性,它就消失了。NaN.foo = "hi"; console.log(NaN.foo) // undefined
  • NaN instanceof Number给出false (但我们知道它是一个数字,所以它一定是一个原语)。

让NaN成为对象并没有多大意义,因为像0 / 0这样的表达式需要生成NaN,而数学运算总是生成原语。将NaN作为对象也意味着它不能充当False值,这在某些情况下是这样做的。

票数 9
EN

Stack Overflow用户

发布于 2012-05-08 20:29:14

NaN是全局对象的属性。

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

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

Reference

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10498511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档