JavaScript 中 Number 物件的 NaN 屬性是什麼?
在 JavaScript 中,NaN 屬性是一個表示“非數字”的特殊值。它是 Number 物件的一個屬性,可以使用 Number.NaN 訪問。
NaN 屬性通常是由於無法產生有意義結果的操作而產生的。例如,0 除以 0 或嘗試解析無效數字都會產生 NaN。
以下是一些會產生 NaN 的操作示例:
Math.sqrt(-1); // NaN
0/0; // NaN
parseInt("foo"); // NaN
需要注意的是,**NaN** 不等於任何值,包括它自身。因此,如果要檢查某個值是否為 NaN,不能使用 == 或 === 運算子。而應該使用 **isNaN()** 函式,該函式專門用於此目的。
以下是 isNaN() 的使用方法示例:
if (isNaN(someValue)) {
console.log("someValue is Not a Number");
}
語法
以下是表示非數字的語法:
NaN Number.NaN
我們可以從 Number 物件呼叫 NaN,所以即使 NaN 表示非數字,它也是 Number 物件的一個屬性。
有時嚴格要求為操作傳遞一個數字,在這種情況下,我們可以丟擲一個 NaN 錯誤,以向用戶顯示他們只能輸入數字值。
示例
您可以嘗試執行以下示例,以瞭解如何使用 NaN:
<html>
<head>
<script>
function showValue() {
var dayOfMonth = 50;
if (dayOfMonth < 1 || dayOfMonth > 31) {
dayOfMonth = Number.NaN
alert("Day of Month must be between 1 and 31.")
}
Document.write("Value of dayOfMonth : " + dayOfMonth );
}
</script>
</head>
<body>
<p>Click the following to see the result:</p>
<form>
<input type="button" value="Click Me" onclick="showValue();" />
</form>
</body>
</html>
示例
讓我們建立一個函式 **sum**,它接受兩個引數並將它們轉換為整數,以便如果使用者輸入十進位制數字或字串形式的數字,它將自動將其轉換為整數並對這些整數求和並列印結果。然後我們將透過傳遞一些引數來呼叫該函式。
<html>
<body>
<h2> NaN property of a Number object in JavaScript </h2>
<div id = "output"> </div>
<script>
function sum(a, b) {
x = parseInt(a);
y = parseInt(b);
result = x + y;
return result;
}
let outputDiv = document.getElementById("output");
outputDiv.innerHTML += "Sum of 2 and 4.0 = " + sum(2, 4.0) + "<br>";
outputDiv.innerHTML += "Sum of 2 and 4 = " + sum("2", 4) + "<br>";
outputDiv.innerHTML += "Sum of Two and 4 = " + sum("Two", 4) + "<br>";
</script>
</body>
</html>
在這裡,當我們傳遞整數、包含整數的字串或十進位制值整數時,我們將得到相同的結果,因為所有值都可以被解析為整數並且可以是有效的數字;但是當我們傳遞字母字串時,我們將得到 NaN 錯誤,這意味著我們傳遞的值不是數字。
示例
讓我們修改上面的函式,我們希望此函式不允許使用十進位制整數甚至字串中的整數,如果函式獲得的值嚴格不是數字型別,我們將控制檯輸出 NaN 以顯示一條訊息,指出輸入的數字不是數字。
<html>
<body>
<script>
function sum(a, b) {
if (typeof (a) === "number" && typeof (b) === "number") {
document.write(a + b);
} else {
document.write(NaN);
}
}
sum("2", 4);
</script>
</body>
</html>
如果 JavaScript 能夠將數字從一種形式轉換為另一種形式(只要它屬於數字類別),但它無法將它們轉換為另一種所需的形式,即輸入的數字在 JavaScript 中不是數字型別,那麼 JavaScript 將返回一個錯誤 NaN,表示“非數字”。有趣的是,NaN 也是 Number 的一個物件,我們可以使用 *Number.NaN* 屬性訪問它。我們還可以使用 *Number.NaN* 屬性或直接傳遞 NaN 來手動丟擲 NaN 錯誤。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP