什么是NaN,对象还是原语?
NaN -不是数字
发布于 2012-05-08 20:23:26
NaN是一个原始数值。就像1,2等。
发布于 2012-05-08 20:32:22
这是一个原始人。您可以通过多种方式进行签入:
typeof NaN给出的是“数字”,而不是“对象”。NaN.foo = "hi"; console.log(NaN.foo) // undefinedNaN instanceof Number给出false (但我们知道它是一个数字,所以它一定是一个原语)。让NaN成为对象并没有多大意义,因为像0 / 0这样的表达式需要生成NaN,而数学运算总是生成原语。将NaN作为对象也意味着它不能充当False值,这在某些情况下是这样做的。
发布于 2012-05-08 20:29:14
NaN是全局对象的属性。
NaN的初始值不是-A-Number-与Number.NaN的值相同。在现代浏览器中,NaN是一个不可配置、不可写的属性。即使不是这样,也要避免覆盖它。
在程序中使用NaN是相当少见的。当数学函数失败(Math.sqrt(-1))或函数尝试解析数字失败(parseInt("blabla"))时,它是返回值。
https://stackoverflow.com/questions/10498511
复制相似问题