在 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
。
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn