HOWTO · JavaScript
在 JavaScript 中檢查字串是否相等
在本文中,我們將討論在 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。