JavaScript 将字符串转换为布尔值

JavaScript 将字符串转换为布尔值

有时我们需要将包含 “true”“false” 的字符串转换为布尔值(或bool)在JavaScript中,我们可以通过多种方法将字符串转换为布尔值。

介绍

布尔值 (true和false) 有时以字符串的形式存储在编程中 (“true”和”false”) 。这通常发生在读取文件或获取用户提供的字符串输入时。如果我们想对这些值应用布尔运算,这些字符串必须被转换为布尔值。在JavaScript中,有一些内置函数可以帮助我们将文本转换为布尔值。本文将介绍这些策略。

在JavaScript中进行字符串到布尔值的转换

以下是在JavaScript中将字符串转换为布尔值的方法。

1. 使用test()方法

JavaScript的 test() 函数使用正则表达式来匹配提供的字符串。如果找到匹配项,该方法返回 true ;否则,返回 falseRegExp 对象有一个名为 test() 的函数。

使用 test() 方法,我们可以简单地将包含true的正则表达式对象与提供的字符串进行匹配,从而将字符串转换为布尔值。如果提供的字符串包含单词 “true” ,则test()方法将返回true。在其他情况下,该方法将返回false。

示例:

var str1 = "true";
var str2 = "false";
var regexPattern = new RegExp("true");
var boolValue1 = regexPattern.test(str1);
var boolValue2 = regexPattern.test(str2);
console.log("str1 converted to boolean is:", boolValue1);
console.log("str2 converted to boolean is:", boolValue2);

输出:

str1 converted to boolean is: true
str2 converted to boolean is: false

RegExp() 在前面的示例中的第5行中用于将字符串 “true” 转换成正则表达式对象。 test() 方法无法在没有这个参数的情况下调用。 在创建对象后,可以简单地调用 test() 函数来查看给定的字符串 str1str2 是否包含单词 “yes”test() 函数返回的是true和false,是因为 str1 包含 “true” ,而 str2 包含 “false”

2. 使用比较运算符

在JavaScript中,比较运算符 (==) 比较左右两侧的操作数。 如果两个操作数的值相同,则比较运算符返回true,否则返回false。

我们必须构建一个包含 “true” 的字符串,以便使用比较运算符将字符串转换为布尔值。 唯一剩下的事情就是将这个字符串与提供的字符串进行比较。 如果提供的文本包含字母 “true” ,我们将会得到一个布尔值为true。 否则,我们将得到错误的信息。

示例:

var stringToConvert = "false"; 

var stringToCompare = "true"; 

var boolVal; 

boolVal = (stringToConvert == stringToCompare);

console.log("The boolean value is:", boolVal, 
            "\nThe data type is:", typeof(boolVal));

输出:

The boolean value is: false 
The data type is: boolean

在上面的示例中,我们需要将字符串 stringToConvert 转换为布尔值。为了实现这一目标,我们创建了第二个字符串名为 stringToCompare ,它包含了值 “true” 。然后,我们使用比较运算符比较这两个字符串。由于这两个字符串是不同的,==运算符给出了错误的结果。变量 boolVal 保存了返回值。最后,我们显示了返回的结果及其数据类型。

3. 使用JSON.parse()函数

JSON.parse() 方法接受一个字符串作为输入,并返回与输入字符串匹配的对象。如果输入的文本包含 “true”“false” ,JSON.parse()方法会将其转换为布尔对象。

示例:

let str = "false";
let boolVal;
boolVal = JSON.parse(str);

console.log("Converting string str to boolean using parse() returns:", boolVal);

输出:

Converting string str to boolean using parse() returns: false

在这个示例中,字符串str被转换为布尔值,使用了JSON.parse()。JSON.parse()返回了布尔值false,因为str包含了单词”false”。这个方法返回的值被打印出来。

4. 使用恒等操作符(===)

在JavaScript中,可以使用恒等操作符(也称为严格相等操作符)将文本转换为布尔值。这个操作符和比较操作符的使用方式相同,用于将字符串转换为布尔值。如果左右两边相等,恒等操作符返回true;如果不相等,则返回false。 例如:

var stringToConvert = "true"; 
var stringToCompare = "true"; 
var boolVal;  
boolVal = (stringToConvert === stringToCompare);
console.log("The boolean value is:", boolVal);

输出:

The boolean value is: true

在这个示例中,我们打算从字符串 stringToConvert 创建一个布尔值。 StringToCompare 的值被赋为 “true”。然后应用恒等运算符来比较这两个字符串。由于这两个字符串中的文本相同,恒等运算符返回true。

5. 使用布尔封装类

JavaScript对象 包装器 类是布尔对象。它将项目包装成布尔值。它使用一个项目作为参数。如果对象为空,则Boolean返回false。无论对象中包含什么,如果不为空,Boolean都将返回true。

布尔封装类即使字符串包含 “false” 也会返回true,因为字符串不为空,因此不建议使用它将字符串转换为布尔值。

示例:

var boolVal1 = Boolean('') 

var boolVal2 = Boolean('true') 

var boolVal3 = Boolean('false') 

console.log("Boolean('') returns -", boolVal1);
console.log("Boolean('true') returns -", boolVal2);
console.log("Boolean('false') returns -", boolVal3);

输出:

Boolean('') returns - false
Boolean('true') returns - true
Boolean('false') returns - true

在这个示例中,我们使用Boolean包装类将字符串转换为布尔值。我们可以看到,当我们给Boolean一个空字符串时,字符串会被转换成false。然而,我们给Boolean的两个非空字符串”true”和”false”被转换成了true布尔值。

6. 使用三元运算符

三元运算符需要三个操作数:一个条件语句,一个在条件为真时执行的表达式,一个在条件为假时执行的表达式。使用这种技术,条件语句将把提供的字符串与”true”进行比较,以将字符串转换为布尔值。如果条件为真,则三元运算符将返回true;否则返回false。

示例:

var str = "false";
var boolVal;

boolVal = (str == "true" ? true : false);

console.log("The boolean value is:", boolVal);

输出:

The boolean value is: false

我们打算将此示例中的字符串str更改为布尔值。在代码的第3行使用了具有三个参数的三元运算符。条件语句的第一个参数<,str与另一个字符串”true”进行比较,使用==运算符。第二个和第三个参数分别返回true和false的布尔值。在我们的情况下,三元运算符的条件出现错误,因为str包含值”false”。因此,三元运算符返回false。之后,我们打印了返回的值。

7. 使用Switch-case

我们可以利用switch-case语句将各种字符串值转换为布尔值。它允许我们将包含”True”、”1″和其他类似字符的字符串转换为布尔值true。同样,我们可以讨论一些具有误导性的场景。

示例:

var str1 = "0";
var str2 = "yes";

function scFunc(str)
{
    switch(str)
    {
        case "true":
            return true;
        case "1":
            return true;
        case "yes":
            return true;
        default:
            return false;
    } 
}

console.log('The string "0" converted to boolean becomes -', scFunc(str1));
console.log('The string "true" converted to boolean becomes -', scFunc(str2));

输出:

The string "0" converted to boolean becomes - false
The string "true" converted to boolean becomes - true

在这个示例中, str1str2 是我们想要转化为布尔值的两个文本。为了实现这个目标,我们创建了一个名为 scFunc() 的方法,其中包含一个switch-case表达式。我们在switch-case语句中定义了三种不同的情况—— “true”,”1”“yes” 。如果给定的字符串是这三个值中的任何一个, scFunc() 函数会返回true。如果给定的字符串是其他值,函数会返回false。

结论

JavaScript提供了几种方法来将包含布尔值的字符串转化为布尔值。不建议使用 双重非运算符 或布尔包装类来进行文本到布尔值的转换。

我们可以使用 switch-case 表达式将不同类型的字符串值转化为布尔值。通过使用正则表达式使用 test() 方法来匹配字符串中的文本。如果找到匹配项,返回true;否则返回false。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程