如何在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
使用雙重否定(!!)運算子
當我們將非(!)運算子應用於任何字串值時,它除了空字串(因為它是JavaScript中的假值)外,對所有字串都返回false。應用雙重非(!!)運算子會轉換我們從單一非運算子獲得的值。
但是,單一非運算子也會將字串轉換為布林值,返回相反的值。因此,我們需要應用雙重非運算子才能獲得正確的值。
語法
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值。
結論
在本教程中,我們學習了三種不同的將字串轉換為布林值的方法。第一種方法使用比較和三元運算子是解決我們問題的最直接方法。第三種方法對於初學者來說可能比較混亂。因此,他們可以選擇第一種和第二種方法。