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。