如何在 JavaScript 中比较字符串和布尔值?
在本教程中,我们将学习如何在 JavaScript 中比较字符串和布尔值。JavaScript 具有一个等号运算符来比较一个值与另一个值。
JavaScript 中有两种类型的等号运算符;一种是**等号运算符** (==),另一种是**严格等号运算符** (===)。两者之间的区别在于它们比较操作数的方式不同。
**等号运算符**仅比较两个操作数的值,并返回布尔值。
**严格等号运算符**首先比较两个操作数的值,如果值匹配,则比较两个操作数的数据类型。这样,如果两个操作数的值和数据类型都相等,则严格等号运算符返回 true。否则,它返回 false 值。
在本教程中,我们将使用**等号运算符**和**严格等号运算符**来比较字符串值和布尔值。
True 和 False 的实际值
在继续教程之前,我们应该了解布尔值**true**和**false**的值。true 的实际值是**1**,false 则是 0 或**空字符串** ""。
true == 1; false == 0; false == "";
现在,用户可以理解下面方法示例的输出了。
使用等号运算符 (==)
我们将在此方法中使用等号运算符来比较字符串和布尔值。使用等号运算符并不难,因为它在 JavaScript 的第一个版本中就已引入,而且大多数人都熟悉它。
语法
用户可以按照以下语法使用等号运算符来比较字符串和布尔值。
false == "0"; //true true == "1"; //true false == ""; //true false == "false"; //false true == "true"; //false
示例
在下面的示例中,我们使用了不同的字符串值来与 true 和 false 布尔值进行比较,并观察了结果。
<html> <head> <title> Comparing the string to Boolean.</title> </head> <body> <h2>Comparing the string to Boolean.</h2> <h4>Compare true with "1" string value:</h4> <p id="result1"></p> <h4>Compare false with "0" string value:</h4> <p id="result2"></p> <h4>Compare true with "hello" string value:</h4> <p id="result3"></p> <h4>Compare false with "hello" string value:</h4> <p id="result4"></p> <script> let result1 = document.getElementById("result1"); let result2 = document.getElementById("result2"); let result3 = document.getElementById("result3"); let result4 = document.getElementById("result4"); let booleanValue = true == "1"; result1.innerHTML = booleanValue; // prints true booleanValue = false == "0"; result2.innerHTML = booleanValue; // prints true booleanValue = true == "hello"; result3.innerHTML = booleanValue; // prints false booleanValue = false == "hello"; result4.innerHTML = booleanValue // prints false </script> </body> </html>
在上面的输出中,用户可以看到,当我们将 true 与“1”比较,将 false 与“0”比较时,它返回 true 布尔值。这是因为 true 的实际值是 1,而 false 是 0。
使用严格等号运算符 (===)
在此方法中,我们将使用严格等号运算符来比较字符串和布尔值。当我们比较字符串和布尔值时,严格等号运算符总是返回 false,因为它还会检查两个操作数的数据类型。
语法
用户可以按照以下语法使用严格等号运算符与字符串和布尔值操作数。
true === "1" // returns false value false === "" // returns false value
尝试以下代码片段:
var data = true; data === "true" //false String(data) === "true" //true
示例
在此示例中,我们将观察使用严格等号运算符将字符串与布尔值匹配时的输出。
<html> <head> <title>Comparing the string to Boolean.</title> </head> <body> <h2>Comparing the string to Boolean.</h2> <h4>Compare true with "1" string value using strict equality operator:</h4> <p id="result1"></p> <h4> Compare false with "0" string value using strict equality operator:</h4> <p id="result2"></p> <h4>Compare true with "123" string value using strict equality operator:</h4> <p id="result3"></p> <script> let result1 = document.getElementById("result1"); let result2 = document.getElementById("result2"); let result3 = document.getElementById("result3"); let booleanValue = true === "1"; result1.innerHTML = booleanValue; // prints false booleanValue = false === "0"; result2.innerHTML = booleanValue; // prints false booleanValue = true === "123"; result3.innerHTML = booleanValue; // prints false </script> </body> </html>
在上面的输出中,用户可以看到,与之不同的是,它对所有字符串和布尔值的比较都返回 false。
结论
当用户使用严格等号运算符来比较字符串和布尔值时,它总是返回 false。因此,这并不意味着它在任何地方都有用。此外,很少有情况需要我们比较字符串和布尔值,用户在这种情况下可以使用等号运算符。