如何在 JavaScript 中檢查變數是否為 NaN?


在本教程中,我們將學習如何檢查 JavaScript 中的變數是否為 NaN。NaN 的完整形式是“非數字”NaN 是 JavaScript 中的保留關鍵字,我們可以將其分配給變數。

如果使用者使用以下方法來檢查變數是否為數字,則該方法將不起作用。

var a = "Hello";
let result = a == NaN; // it always returns false.

正如我們所說,上述方法無法用於檢查數字,因為 NaN 是保留關鍵字。因此,它不能等於任何變數的值。即使 NaN 在將其值分配給變數後使用時也不等於自身。

使用 isNaN() 方法

在 JavaScript 中,isNaN() 方法用於檢查變數是否為除數字資料型別以外的任何其他型別。它以變數作為引數,如果變數是數字則返回 false。否則,它返回 true 布林值。

使用者可以按照以下語法使用 isNaN() 方法檢查變數是否為NaN

語法

let number = 10;
let result = isNaN(number);

引數

  • number - 它以任何變數作為引數,並根據變數是否為NaN 返回布林值。

示例

在下面的示例中,我們使用了 isNaN 方法來檢查 NaN。我們採用了不同的值來觀察 isNaN() 方法的輸出。

<html> <head> </head> <body> <h2>Check if a variable is NaN in JavaScript.</h2> <h4>output of <i> isNaN() </i> method for different values.</h4> <div id = "output1"></div> <script> let output1 = document.getElementById("output1"); let output = ""; output = output + isNaN(1000) + " : 1000 <br> "; output = output + isNaN("tutorialsPoint") + " : TutorialsPoint <br> "; output = output + isNaN(NaN) + " : NaN<br> "; output = output + isNaN(-21.2) + " : -21.2 <br> "; output = output + isNaN('') + " : '' <br> "; output = output + isNaN(0) + " : 0 <br> "; output = output + isNaN(true) + " : true <br> "; output1.innerHTML = output; </script> </body> </html>

在上面的輸出中,使用者可以看到 isNaN() 方法對於數字值返回 false,對於非數字值返回 true。“true”布林值也為 1,所以它是一個數字。此外,“”的值為 0,所以 isNaN() 方法對此返回 false。

使用 Number.isNaN() 方法

Number.isNaN() 與 JavaScript 中的 isNaN() 方法非常相似,但兩者之間存在細微差別。isNaN() 方法檢查所有型別的變數是否為 NaN。Number.isNaN() 方法僅檢查變數的數字型別。這意味著如果我們傳遞除數字以外的任何其他資料型別的變數,它始終返回 false 值。

按照以下語法使用 Number.isNaN() 檢查 NaN。

語法

let number = 10;
let result = Number.isNaN( number ); // returns false for all non-numeric values

示例

在下面的示例中,我們使用了 Number.isNaN() 方法來檢查變數是否為 NaN。我們使用了與上面示例中相同的數值。我們將觀察 isNaN()Number.isNaN() 方法輸出之間的差異。

<html> <head> </head> <body> <h2>Check if a variable is NaN in JavaScript.</h2> <h4> output of <i> Number.isNaN() </i> method for different values.</h4> <div id = "output1"></div> <script> let output1 = document.getElementById("output1"); let output = ""; output = output + Number.isNaN(1000) + " : 1000 <br> "; output = output + Number.isNaN("tutorialsPoint") + " : TutorialsPoint <br> "; output = output + Number.isNaN(NaN) + " : NaN <br> "; output = output + Number.isNaN(-21.2) + ": -21.2 <br>"; output = output + Number.isNaN('') + " : '' <br> "; output = output + Number.isNaN(0) + " : 0 <br> "; output = output + Number.isNaN(true) + " : true <br> "; output1.innerHTML = output; </script> </body> </html>

在上面的輸出中,使用者可以看到對於字串值“TutorialsPoint”,它已更改為 false。由於我們傳遞了非數字值作為 Number.isNaN() 方法的引數,因此返回 false。

我們已經學習瞭如何檢查變數是否為 NaN。第一種方法是檢查 NaN 的標準方法。第二種方法在某些瀏覽器中已棄用。建議使用 isNaN() 方法,因為它適用於所有型別的變數。

更新於: 2022 年 8 月 8 日

9K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告