如何在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值。

結論

在本教程中,我們學習了三種不同的將字串轉換為布林值的方法。第一種方法使用比較和三元運算子是解決我們問題的最直接方法。第三種方法對於初學者來說可能比較混亂。因此,他們可以選擇第一種和第二種方法。

更新於:2022年7月12日

980 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告