如何在 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。因此,這並不意味著它在任何地方都有用。此外,很少有情況需要我們比較字串和布林值,使用者在這種情況下可以使用等號運算子。