JavaScript中的NaN

版权声明:分享才能获得最大的价值 https://blog.csdn.net/qq_32252957/article/details/85072575

可以参考文档 MDN


什么是NaN

  1. 全局属性 NaN 表示 Not-A-Number (非数值)的值。
  2. NaN 是一个全局对象的属性。
  3. NaN 属性的初始值就是 NaN,和 Number.NaN 的值一样。
  4. 在 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

see also

猜你喜欢

转载自blog.csdn.net/qq_32252957/article/details/85072575