在 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