如何在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 值。
结论
在本教程中,我们学习了三种不同的将字符串转换为布尔值的方法。使用比较运算符和三元运算符的第一种方法是解决我们问题的最直接的方法。第三种方法对初学者来说可能比较混乱。因此,他们可以选择第一种和第二种方法。