我們將學習 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 中非布爾值到布爾值的強制轉換?的詳細內容,更多請關注www.92cms.cn其它相關文章!






