2015年12月10日 星期四

JavaScript 中的 NaN 介紹

全域屬性 NaN 表示 Not-A-Number 的值。

Property attributes of NaN
Writable     no
Enumerable     no
Configurable     no

語法

NaN

描述

NaN 是一個全域物件的屬性。

NaN 屬性的初始值就是 NaN,和 Number.NaN 的值一樣。在現代瀏覽器中(ES5中), NaN 屬性是一個不可配置(non-configurable),不可寫(non-writable)的屬性。但在ES3中,這個屬性的值是可以被更改的,但是也應該避免覆蓋。

在編碼很少直接使用到 NaN。通常都是在計算失敗時,作為 Math 的某個方法的返回值出現的(例如:Math.sqrt(-1))或者嘗試將一個字串解析成數字但失敗了的時候(例如:parseInt("blabla"))。
判斷一個值是否是NaN

等號運算子(== 和 ===) 不能被用來判斷一個值是否是 NaN。必須使用 Number.isNaN() 或 isNaN() 函式。

NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true

沒有留言:

張貼留言