JavaScript Number.isNaN() 方法

Number 對象參考手冊 JavaScript Number 對象

實例

檢測參數是否為 Number.NaN:

Number.isNaN(123); Number.isNaN(-1.23); Number.isNaN('123'); Number.isNaN(0/0); Number.isNaN(5-2); Number.isNaN(0); Number.isNaN('Hello'); Number.isNaN('2005/12/12'); Number.isNaN(' ');

嚐試一下 »

定義和用法

NaN 是 "Not-a-Number" 的簡寫,字麵上翻譯為不是一個數字

在 JavaScript 中,NaN 是一個不合法的數字。

Number.isNaN() 方法用於判斷傳遞的值是否為 NaN,並且檢查其類型是否為 Number,如果值為 NaN 且類型為 Number,則返回 true,否則返回 false。

在 JavaScript 中,NaN 最特殊的地方就是,我們不能使用相等運算符 == 和 === 來判斷一個值是否是 NaN,因為 NaN == NaN 和 NaN === NaN 都會返回 false。因此,必須要有一個判斷值是否是 NaN 的方法。

和全局函數 isNaN() 相比,Number.isNaN() 不會自行將參數轉換成數字,隻有在參數是值為 NaN 的數字時,才會返回 true。

Number.isNaN(NaN);        // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0)       // true

// 下麵這幾個如果使用全局的 isNaN() 時,會返回 true。
Number.isNaN("NaN");      // false,字符串 "NaN" 不會被隱式轉換成數字 NaN。
Number.isNaN(undefined);  // false
Number.isNaN({});         // false
Number.isNaN("blabla");   // false

// 下麵的都返回 false
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);
Number.isNaN("37");
Number.isNaN("37.37");
Number.isNaN("");
Number.isNaN(" ");

瀏覽器支持

Number.isNaN() 是 ECMAScript6 (ES6) 新特性。

基本上最新的瀏覽器版本都支持 ES6 (JavaScript 2015)。

Number.isInteger() 不支持 Internet Explorer 11 及更早版本的瀏覽器。

Chrome Edge Firefox Safari Opera
Yes Yes Yes Yes Yes

語法

Number.isNaN(value)

參數值

參數 描述
value 要檢測的值。

返回值

類型 描述
布爾型 如果值為 NaN 且類型為 Number,則返回 true,否則返回 false。

技術細節

JavaScript 版本: ECMAScript 6

更多實例

實例

檢測參數是否為整數:

// 返回 true isNaN('Hello'); // 返回 false Number.isNaN('Hello');

嚐試一下 »

Number 對象參考手冊 JavaScript Number 對象