如何在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 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告