如何在JavaScript中將字串轉換為布林值?
本教程將教你如何將**字串**轉換為JavaScript中的**布林值**。假設在開發應用程式時,我們將布林值以字串格式儲存在資料庫或本地儲存中。現在,基於儲存的字串值,我們想將其轉換為布林值,併為應用程式使用者執行特定操作;問題出現了,我們如何將字串轉換為布林值?
解決上述問題可能有很多方法。我們將在本教程中學習一些有用的方法。
- 使用比較運算子(==)和三元運算子(? :)
- 使用`Boolean`類
- 使用雙非運算子(!!)
使用比較運算子(==)和三元運算子(? :)
將字串轉換為布林值最簡單的方法之一是使用**比較**('==')運算子和**三元 (? :)** 運算子。但是,使用者也可以只使用比較運算子。
語法
string_var == 'true' ? true : false; string_var == 'false' ? false : true; string_var.toLowerCase() == 'true' ? true : false; //case sensitive approach
比較運算子根據`string_var`與`'true'`或`'false'`值的比較結果返回`true`和`false`值。三元運算子根據比較條件的真假返回第一個或第二個值。
引數
- **string_var** - 可以是任何您想轉換為布林值的字串。
示例 1
在下面的示例中,我們使用比較運算子和三元運算子將字串(let string_var = “True”)轉換為布林值。
<html> <head> <title> Convert String to boolean </title> </head> <body> <h2>Converting String to boolean in JavaScript.</h2> <h4> String after converting to boolean. </h4> <p id="contentDiv"></p> <script type="text/javascript"> // function to convert string to boolean function stringToBoolean() { let string_var = "True"; let boolean_Value = string_var.toLowerCase() == 'true' ? true : false; contentDiv.innerHTML = "The value of <i> boolean_Value </i> is " + boolean_Value + ". The data type of boolean_Value variable is " + typeof boolean_Value; } stringToBoolean(); </script> </body> </html>
在輸出中,使用者可以看到`boolean_Value`變數的資料型別是布林值,這意味著我們的字串已成功轉換為布林值。
使用 Boolean 類
在 JavaScript 中,**Boolean** 類接受字串或任何值作為引數,並根據其真值返回布林值。JavaScript 中有六個假值,Boolean 類除了這六個假值以外,對所有字串值都返回 true。
這**六個假值**如下所示:
- false
- 0
- NaN
- "" // 空字串
- null
- undefined
使用者可以按照以下語法使用 Boolean 類。
語法
let bool1 = Boolean(string);
引數
**string** - 您可以新增任何想要轉換為布林值的字串值作為字串引數。
示例 2
在下面的示例中,我們使用 Boolean 類將字串轉換為布林值。我們將 "False" 和 "" 轉換為布林值。
<!DOCTYPE html> <html> <head> <title> Convert String to boolean. </title> </head> <body> <h2>Converting String to boolean in JavaScript.</h2> <h4> String after converting to boolean. </h4> <p id="contentDiv"></p> <script type="text/javascript"> // function to convert string to boolean function stringToBoolean() { let bool1 = Boolean("false"); let bool2 = Boolean(""); contentDiv.innerHTML = " <p> The value of <i> bool1 </i> is " + bool1 + ".</p><p> The value of <i> bool2 </i> is " + bool2 + ".</p> <p> The data type of bool1 variable is " + typeof bool1 + " </p> "; } stringToBoolean(); </script> </body> </html>
在輸出中,`bool1` 變數的值為 true,因為“false”不是空字串。Boolean 類只對六個假值返回 false。注意以下區別:
Boolean(false); //false Boolean("false"); //true
使用雙非運算子(!!)
當我們將**非 (!)** 運算子應用於任何字串值時,它會對所有字串返回 false,除了空字串(因為它是 JavaScript 中的**假值**)。應用雙非 (!!) 運算子會使我們從單非運算子獲得的值收斂。
但是,單非運算子也會將字串轉換為布林值,返回相反的值。因此,我們需要應用雙非運算子才能獲得正確的值。
語法
let bool = !!string_val
引數
**string_val** - 使用者可以向此運算元新增任何字串以將其轉換為布林值。
示例 3
<!DOCTYPE html> <html> <head> <title> Convert String to boolean.</title> </head> <body> <h2>Converting String to boolean in JavaScript.</h2> <h4> String after converting to boolean. </h4> <p id="contentDiv"></p> <script type="text/javascript"> // function to convert string to boolean function stringToBoolean() { let string_var = "tutorialsPoint"; let singleNotBool = !string_var; // false value let doubleNotBool = !!string_var; // true value contentDiv.innerHTML = "<p> The value of <i> singleNotBool </i> is " + singleNotBool + ".</p> <p> The value of <i> doubleNotBool </i> is " + doubleNotBool + ".</p> <p> The data type of doubleNotBool variable is " + typeof doubleNotBool + "</p>"; } stringToBoolean(); </script> </body> </html>
在輸出中,使用者可以觀察到,當我們將單非運算子應用於非空字串時,它返回 false,如果我們使用雙非運算子,它返回 true 值。
結論
在本教程中,我們學習了三種不同的將字串轉換為布林值的方法。使用比較運算子和三元運算子的第一種方法是解決我們問題的最直接的方法。第三種方法對初學者來說可能比較混亂。因此,他們可以選擇第一種和第二種方法。