如何在 JavaScript 中檢查 NaN 是否為 NaN?
在本文中,我們將瞭解如何在 JavaScript 中檢查 NaN 是否為 NaN。未加引號的文字常量“非數字”由 NaN 表示,這是一個特殊值。NaN 通常用於為應該返回有效數字的函式發出錯誤條件訊號,因為它總是與任何數字(包括 NaN)不相等。
區分 JavaScript 中的不同未定義值可能很棘手。在布林運算中使用 NaN 值時,需要注意一些困難。
JavaScript 中的數字型別允許您描述任何型別的數字,包括整數和浮點值。JavaScript 數字的一個特定值是 NaN,代表“非數字”。
語法
以下是 NaN 方法的語法
var val = Number.NaN
五種不同型別的運算都會返回 NaN。JavaScript 使用 NaN 作為對數字進行失敗操作的結果。
無法解碼的數字
不是實數的數學運算的結果
引數的值為 NaN。
不確定的形式
任何使用不是加法運算的字串的運算
示例 1
如果 JavaScript 無法將字串轉換為數字,它將返回 NaN。在這種情況下,NaN 表示解析失敗。考慮以下場景:
<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script> const tutpoint = 'tuttorialspoint555'; const number = parseInt(tutpoint); document.write(number); </script> </body> </html>
示例 2
在這個例子中,我們將瞭解:未定義是全域性未定義屬性表示的原始值。它是 JavaScript 中的一種基本型別。
<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script> function tutpoint(result) { if (result === undefined) { return 'This gives you undefined value!'; } return result; } let demo; document.write(tutpoint(demo)); </script> </body> </html>
示例 3
作為引數使用 NaN,當表示式包含字元 NaN 時,它將始終返回 NaN。考慮以下場景:
<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script> const tutpoint = 55 + 5 / NaN; document.write(tutpoint); </script> </body> </html>
示例 4
使用未定義型別,在不確定形式中執行算術運算時,結果為 NaN。考慮以下場景:
<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script> const tutpoint = 55 + 0 / 0; document.write(tutpoint); </script> </body> </html>
示例 5
在這個例子中,Math.sqrt() 函式返回一個整數的平方根。傳遞 -2 會導致 NaN,因為它只接受非負數。考慮以下場景:
<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script> const tutpoint = Math.sqrt(-2); document.write(tutpoint); </script> </body> </html>
isNaN()
isNaN() 方法檢查一個值是否為 NaN。標準庫方法 isNaN 是執行此檢查最有用的方法之一 ()。您可以選擇使用 Number.isNaN 而不是 isNaN 函式,因為強制轉換可能出乎意料 ()。
使用數字作為引數呼叫 Number.isNaN() 函式來確定一個數字是否為 NaN。如果傳入的值為 NaN 且具有數字型別,則 Number.isNaN 方法返回 true;否則,返回 false。
語法
以下是 isNaN() 方法的語法
isNaN(value)
序號 | 引數和描述 |
---|---|
1 | 值 要測試的值 |
示例 1
在這個例子中,我們將瞭解如何識別一個值是否為 NaN。isNaN() 是 JavaScript 中的一個全域性方法,如果其引數為 NaN,則返回 true:
<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <script> const tutpoint = 10 + 0 / 0; document.write(isNaN(tutpoint)); </script> </body> </html>
示例 2
在這個例子中,我們將瞭解如何識別一個值是否為 NaN。isNaN() 是 JavaScript 中的一個全域性方法,如果其引數為 NaN,則返回 true:
<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <div id="result"></div> <script> let tutpoint = "Welcome to tutorialspoint!"; document.getElementById("result").innerHTML = isNaN(tutpoint); </script> </body> </html>
示例 3
在這個例子中,我們將瞭解 Number.isNaN() 方法,它返回 false。
<!DOCTYPE html> <html> <title>How to check whether a NaN is a NaN or not in JavaScript - TutorialsPoint</title> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <div id="result"></div> <script> let tutpoint = "Welcome to tutorialspoint!"; document.getElementById("result").innerHTML = Number.isNaN(tutpoint); </script> </body> </html>