版权声明:分享才能获得最大的价值 https://blog.csdn.net/qq_32252957/article/details/85072575
可以参考文档 MDN
什么是NaN
- 全局属性 NaN 表示 Not-A-Number (非数值)的值。
- NaN 是一个全局对象的属性。
- NaN 属性的初始值就是 NaN,和 Number.NaN 的值一样。
- 在 ES5 中, NaN 属性是一个不可配置(non-configurable),不可写(non-writable)的属性。但在 ES3 中,这个属性的值是可以被更改的,但是也应该避免覆盖。
Property attributes of NaN
property | boolean |
---|---|
Writable | no |
Enumerable | no |
Configurable | no |
NaN的类型
typeof NaN // "number"
NaN 是一种特殊的 Number 类型值。
Testing against NaN
可以看到NaN不等于本身,也很好理解, 因为NaN可以是很多个非数值的值,它们不一定相等。
The Number.NaN property represents Not-A-Number. Equivalent of NaN.Number.NaN静态属性表示非数值,等同于NaN
NaN === NaN; // false
Number.NaN === NaN; // false
isNaN(NaN); // true
isNaN(Number.NaN); // true
function valueIsNaN(v) { return v !== v; }
valueIsNaN(1); // false
valueIsNaN(NaN); // true
valueIsNaN(Number.NaN); // true