在 JavaScript 中檢查字串是否相等
在 JavaScript 中,有四種運算子可用於檢查字串是否相等。這些運算子稱為比較運算子。
- 嚴格相等(
===
):嚴格相等(也稱為三重相等運算子)檢查變數的值及其資料型別。如果這兩個東西相等,那麼它只返回true
,否則返回false
。 - 嚴格不等於 (
!==
):這與嚴格等於相反。如果值或資料型別不匹配,則返回true
;否則,false
。 - 等號(
==
):雙等號只檢查變數的值。如果值匹配,則返回true
,否則返回false
。它不關心變數型別。 - 不相等(
!=
):這與相等(==
)相反。僅當變數內的值不匹配時才返回true
,而不管它們的資料型別如何。如果值彼此匹配,則返回false
。
這些運算子不僅用於檢查字串的相等性,還用於檢查其他資料型別的相等性。在這四個運算子中,讓我們根據用例找出檢查字串相等性的最佳運算子。
你可能已經看過第三個和第四個運算子,即 ==
和 !=
,它們在其他程式語言中也很常見。但是它在 JavaScript 中的工作方式與其他語言略有不同。
何時在 JavaScript 中使用運算子進行字串相等
與 JavaScript 相關,以下是一些用例,你可以在其中使用 ===
或 ==
運算子。
- 如果比較值可能是
true
或false
值,請使用===
而不是==
。 - 如果比較值可能是這些特定值中的任何一個(
0
、""
或[]
– 空陣列),請使用===
而不是==
。 - 在任何其他情況下,你都可以安全地使用
==
。它不僅安全,而且還簡化了程式碼並提高了可讀性。
使用嚴格不等於 (!==
) 和不等於 (!=
) 運算子時,上述規則同樣適用。要了解有關具體規則的更多資訊,你可以閱讀 ES5 規範的 11.9.3 部分。
通過示例瞭解 JavaScript 中的字串相等性
讓我們舉一些例子,詳細瞭解這些東西。
在這個例子中,我們採用了兩個變數,name_1
和 name_2
。它們都以 "adam"
作為字串值。現在讓我們應用上述每個運算子並檢視我們得到的輸出。
在這裡,我們使用了四個 if
和 else
語句,每個語句代表不同的比較運算子。由於 name_1
和 name_2
變數的值和資料型別相同,三重等於或嚴格等於運算子 (===
) 將列印 True
作為輸出。雙等號 ==
也將列印 True
,因為兩個變數具有相同的值。
let name_1 = "adam";
let name_2 = "adam";
// Strict Equal
if(name_1 === name_2) console.log("True");
else console.log("False");
// Equal
if(name_1 == name_2) console.log("True");
else console.log("False");
// Strict not equal
if(name_1 !== name_2) console.log("True");
else console.log("False");
// Not equal
if(name_1 != name_2) console.log("True");
else console.log("False");
輸出:
True
True
False
False
當使用 Strict 不等於 (!==
) 運算子和不等於 (!=
) 運算子時,它們都會列印 False
作為輸出,因為兩個變數中的值本身是相同的。
下面是另一個示例,我們將字串與整數進行比較。在這裡,我們有一個變數 str
,其值為 "80"
,一個字串值。我們還有另一個變數 num
,它包含一個整數值 80
。由於這兩個變數具有不同資料型別的相同值,讓我們看看對它們使用各種比較運算子時會發生什麼。
let str = "80";
let num = 80;
// Strict Equal
if(str === num) console.log("True");
else console.log("False")
// Equal
if(str == num) console.log("True");
else console.log("False")
// Strict not equal
if(str !== num) console.log("True");
else console.log("False")
// Not equal
if(str != num) console.log("True");
else console.log("False")
輸出:
False
True
True
False
和第一個例子一樣,我們也有四個 if
和 else
語句,每個語句代表不同的比較運算子。
當我們使用嚴格等於或三重等於 (===
) 時,我們將得到 False
作為輸出。原因是即使值相同,資料型別也不同。但是當我們使用雙等號 (==
) 時,我們得到 True
作為輸出,因為雙等號只檢查值而不是型別。
當我們使用 Strict not equal (!==
) 時,我們得到 True
作為輸出,因為字串值 "80"
不等於整數值 80
;因此,它返回 True
。
最後,不等於 (!=
) 運算子僅比較兩個變數的值。這些值需要不同才能列印 True
。由於在這種情況下值相同,因此返回 False
。