JavaScript 中 NaN 如何轉換為布林值?


在本文中,我們將學習如何將 NaN 轉換為布林值。JavaScript 中的 NaN 代表 **非數字**(Not a Number),其型別為數字,但實際上它不是數字。要將 NaN 轉換為布林值,我們可以使用多種方法,其中一些方法將在下面討論。

  • 使用 Boolean() 函式
  • 使用 !! 運算子
  • 使用 NOT 運算子和 isNaN() 方法

使用 Boolean() 函式

Boolean 函式用於獲取任何變數、條件或物件的布林值(**真** 或 **假**)。要將 **NaN** 轉換為布林值,我們只需要將 NaN 傳遞給 Boolean 函式。

語法

以下是將 NaN 轉換為布林值的語法

Boolean(NaN)

這裡 **Boolean()** 函式返回 false。

示例 1

在這個例子中,我們建立了一個名為 bool 的變數,並將 NaN 傳遞到 Boolean 函式中,並將返回值儲存到 bool 中,然後列印結果。

<html> <body> <p>Convert NaN to Boolean </p> <p id ="result"></p> <script> let bool = Boolean(NaN) document.getElementById("result").innerHTML += bool +"<br>"; document.getElementById("result").innerHTML += typeof bool </script> </body> </html>

使用 !! 運算子

邏輯 **非** 運算子後跟另一個邏輯 **非** 運算子是一種簡單而優雅的方法,可以將 NaN 轉換為布林值。第一個邏輯運算子將值轉換為布林值,另一個邏輯運算子反轉第一個運算子返回的值。

語法

!!object

讓我們用一個例子將運算子分解成兩部分

示例 2

在這個例子中,我們建立了一個名為 x 的變數,並將 “Tutorials point” 儲存到其中,並建立另一個名為 x1 的變數,其中我們儲存了 !x 的值,這裡邏輯運算子將值轉換為布林值,另一個運算子 (x2) 反轉第一個運算子 (x1) 給出的結果。

<html> <body> <p id ="output"></p> <script> var x = "Tutorials Point" var x1 = !x; // false var x2 = !!x; // true document.getElementById("output").innerHTML = x1 + " <br>"; document.getElementById("output").innerHTML += x2 </script> </body> </html>

示例 3

在這個例子中,我們將 NaN 轉換為布林值。

<html> <body> <p>Convert NaN to Boolean</p> <p id ="output"></p> <script> let bool = !!NaN; document.getElementById("output").innerHTML += bool +"<br>"; document.getElementById("output").innerHTML += typeof bool </script> </body> </html>

使用 NOT 運算子和 isNaN() 方法

我們可以使用 **非** 運算子和 **isNaN()** 方法將 NaN 轉換為布林值。如果值為 NaN,則 isNaN() 方法返回 true,否則返回 false。isNaN() 方法在測試值之前會將值轉換為數字。*非*(!) 運算子將 true 轉換為 false。

語法

!isNaN(NaN)

這裡 isNaN() 返回 true,因為值為 NaN,最後 ! 運算子將 true 轉換為 false。

示例 4

在下面的例子中,我們使用 isNaN() 方法將 NaN 轉換為布林值。我們還在將其轉換為布林值後測試變數的型別。

<html> <body> <p>Convert NaN to Boolean</p> <p id ="output"></p> <script> let bool = !isNaN(NaN); document.getElementById("output").innerHTML += bool +"<br>"; document.getElementById("output").innerHTML += typeof bool </script> </body> </html>

正如我們提到的三種方法,它們效能都比較高。Boolean 函式被一些開發者廣泛使用,而 !! 運算子方法看起來有點難以閱讀,一些開發者對此並不瞭解。如果我們談論這兩種方案的速度,!! 運算子比 Boolean 函式略快。我們討論的第三種方法是組合使用 ! 運算子和 isNaN()。它將 NaN 轉換為布林值 false。

更新於:2022年8月11日

瀏覽量 1K+

啟動您的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.