📜  JavaScript 中 != 和 !==运算符的区别(1)

📅  最后修改于: 2023-12-03 15:01:40.168000             🧑  作者: Mango

JavaScript 中 !=!== 运算符的区别

在 JavaScript 中,我们经常使用比较运算符来比较两个值的相等性。其中,!=!== 运算符用于比较两个值是否不相等。虽然这两个运算符看起来相似,但它们在比较时有一些重要的区别。

!= 运算符

!= 运算符用于判断两个操作数是否不相等。它会首先进行类型转换,然后再进行比较。

以下是 != 运算符的比较规则:

  • 如果两个操作数的类型相同,那么会进行数字或字符串的比较。
  • 如果操作数是对象,则会检查它们是否引用相同的对象。
  • 如果操作数中有一个是 nullundefined,则它们会被视为相等。
  • 如果操作数是布尔值,则 true1false0 会被视为相等。

下面是 != 运算符的示例:

console.log(5 != "5");  // false,数字和字符串相等
console.log(null != undefined);  // false,null 和 undefined 相等
console.log(true != 1);  // false,布尔值和数字相等
console.log(true != '1'); // false,布尔值和字符串相等
!== 运算符

!== 运算符也用于判断两个操作数是否不相等。与 != 运算符不同,!== 不会进行类型转换,它要求操作数既要值相等,又要类型相等。

以下是 !== 运算符的比较规则:

  • 如果两个操作数的类型不同,它们被视为不相等。
  • 如果操作数是对象,则会检查它们是否引用不同的对象。
  • 如果操作数是 nullundefined,它们被视为不相等。
  • 如果操作数是布尔值,则 true1false0 被视为不相等。

下面是 !== 运算符的示例:

console.log(5 !== "5");  // true,数字和字符串不相等
console.log(null !== undefined);  // true,null 和 undefined 不相等
console.log(true !== 1);  // true,布尔值和数字不相等
console.log(true !== '1'); // true,布尔值和字符串不相等
总结
  • != 运算符在比较时会进行类型转换,然后进行值的比较。
  • !== 运算符要求操作数既要值相等,又要类型相等。
  • 在大多数情况下,推荐使用 !== 运算符来避免意外的类型转换。
  • 熟悉这两个运算符的行为可以帮助我们编写更可靠的代码。

希望这篇介绍能够帮助你理解 JavaScript 中 !=!== 运算符的区别。