首頁 > web前端 > js教程 > 主體

解釋一下 JavaScript 中非布林值到布林值的強制轉換?

王林
發布: 2023-09-20 21:37:02
轉載
1448 人瀏覽過

解释一下 JavaScript 中非布尔值到布尔值的强制转换?

我們將學習 JavaScript 中非布林值強制轉換為布林值。對於初學者來說,強制轉換這個詞在 JavaScript 中是新的。那麼,讓我們澄清一下什麼是強制。

強制是將一種資料類型的變數轉換為另一種資料型別。眾所周知,JavaScript 不是一種嚴格類型的語言。因此,我們不需要定義變數的類型。有時,JavaScript 會自動強制變數並在輸出中給出不可預測的結果。

JavaScript 中有兩種類型的強制轉換。一種是隱式強制,另一種是顯式強制。我們將在本教程中一一學習這兩種強制轉換。

明確強制

當使用布林強制方法之一(例如 Boolean() 或 !!)將非布林值明確轉換為布林值時,就會發生明確強制轉換。

我們將詳細討論這兩種方法:

使用雙重 NOT (!!) 運算子進行明確強制轉換

當我們在 JavaScript 中對任何值使用 not (!) 運算子時,它會將非布林值轉換為布林值。

一個 not(!) 運算子給出值的錯誤結果,兩個 not (!!) 運算子給出布林值的實際結果。

文法

使用者可以遵循以下語法,使用雙 NOT 運算子將非布林值強制轉換為布林值。 -

var non_bool = "non-bool";
var bool = !!non_bool;
登入後複製

在上面的語法中,第一個 not (!) 運算子將字串類型的 non_bool 變數強制轉換為布林變數。第二個 not(!) 運算子用於取得 non_bool 變數的實際布林值。

以下是使用雙 NOT 運算子的一些範例 -

console.log(!!0); // logs false
console.log(!!1); // logs true
登入後複製

在上面的範例中,使用雙 NOT 運算子將非布林值 0 明確強制為布林值。雙 NOT 運算子將其運算元轉換為布林值,然後將其取反,因此表達式 !!0 相當於 !(!false),其計算結果為 false。

讓我們來看一個使用 HTML 和 JavaScript 的完整範例

範例

在此範例中,我們建立了三個數字變量,名稱為 num1、num2 和 num3。此外,我們也使用不同的正值、負值和零值初始化了數字變數。

使用者可以觀察輸出中數字的實際布林值。零的布林值是 false,因為它是 JavaScript 中的假布林值之一。

<html>
<body>
   <h2> Coercion using <i> Doble NOT (!!) </i> Operator </h2>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      let num1 = 10;
      let num2 = 0;
      let num3 = -10;

      output.innerHTML += "num1 = " + num1 + "<br/>";
      output.innerHTML += "num2 = " + num2 + "<br/>";
      output.innerHTML += "num3 = " + num3 + "<br/>";
      output.innerHTML += "The boolean results of the above number values are given below.<br/>";

      // Using Double NOT Operator
      num1 = !!num1;
      num2 = !!num2;
      num3 = !!num3;

      output.innerHTML += "num1 = " + num1 + "<br/>";
      output.innerHTML += "num2 = " + num2 + "<br/>";
      output.innerHTML += "num3 = " + num3 + "<br/>";
   </script>
</body>
</html>
登入後複製

使用 Boolean() 建構子進行明確強制轉換

在 JavaScript 中,明確強制轉換是 JavaScript 開發人員將變數從一種資料類型轉換為另一種資料類型。在這裡,我們將學習將非布林值明確強制轉換為布林值。

我們可以簡單地使用 JavaScript 中的「布林」建構函式將任何值轉換為布林值。

文法

使用者可以依照以下語法將 JavaScript 中的非布林值強制轉換為布林值。

let var1 = 30;
let var2 = Boolean(var1);
登入後複製

在上面的語法中,var1 是數字資料類型,我們使用布林建構函數將其強制轉換為布林值。

以下是使用 Boolean() 建構子的一些範例 -

console.log(Boolean(0)); // logs false
console.log(Boolean(1)); // logs true
登入後複製

在上面的範例中,使用布林函數將非布林值 0 明確強制為布林值。 Boolean 函數傳回其參數的布林值,因此表達式 Boolean(0) 傳回 false。

當我們將除六個 false 值之外的任何非布林值強制轉換為布林值時,它總是會給出 true 結果。對於六個錯誤值,我們總是得到錯誤的布林值作為結果。

下面給了六個假布林值。

  • 錯誤

  • “”

  • NaN

  • #0

  • 未定義

範例

我們在這個例子中創建了不同的變量,並用不同的假值初始化它們。我們可以觀察到,當我們將它們強制為布林值時,它總是給出一個錯誤的布林值。

<html>
<body>
   <h2> Coercion using the <i> Boolean()</i> Constructor </h2>
   <p id = "output"> </p>
   <script>
      let output = document.getElementById("output");
      // Creating the variables
      let falsy1 = undefined;
      let falsy2 = null;
      let falsy3 = "";

      output.innerHTML += "falsy1 = " + falsy1 + "<br/>";
      output.innerHTML += "falsy2 = " + falsy2 + "<br/>";
      output.innerHTML += "falsy3 = " + falsy3 + "<br/>";
      output.innerHTML +=
      "The boolean results of the above falsy values are given below.<br/>";

      // coercing the different falsy values to the boolean values.
      output.innerHTML += "falsy1 = " + Boolean(falsy1) + "<br/>";
      output.innerHTML += "falsy2 = " + Boolean(falsy2) + "<br/>";
      output.innerHTML += "falsy3 = " + Boolean(falsy3) + "<br/>";
   </script>
</body>
</html>
登入後複製

隱式強制

當在需要布林值的上下文中使用非布林值時,就會發生隱含強制轉換。在這種情況下,JavaScript 將使用一組稱為「真值」和「假值」的規則自動將值轉換為布林值。

以下是一些如何將非布林值強制轉換為布林值的範例 -

範例

在此範例中,我們使用 JavaScript 中圖像的隱藏屬性透過點擊顯示圖像 -

// Example 1: Implicit coercion in a conditional statement
if (0) {
   console.log("This will not be logged");
}

// Example 2: Implicit coercion using the logical NOT operator
console.log(!0); // logs true
console.log(!1); // logs false
登入後複製

在第一個範例中,值 0 用於條件語句中,並且使用真值和假值的規則將其隱式強制為布林值。在 JavaScript 中,值 0 被視為 false,因此條件語句不會被執行。

在第二個範例中,邏輯 NOT 運算子用於對非布林值 0 的布林值取反。邏輯 NOT 運算子會反轉其運算元的布林值,因此表達式 !0 等效於 !false,其評估結果為 true。

JavaScript 中有兩種類型的強制轉換。一種是隱式強制,另一種是顯式強制。我們在本教程中一一學習了這兩種類型的強制轉換。

以上是解釋一下 JavaScript 中非布林值到布林值的強制轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板