不等号 (!=)

**不等式 (!=)** 运算符检查其两个操作数是否不相等,返回一个布尔值结果。与 严格不等式 运算符不同,它尝试转换和比较不同类型的操作数。

试试看

语法

js
x != y

描述

不等式运算符检查其操作数是否不相等。它是 相等性 运算符的否定,因此以下两行将始终给出相同的结果

js
x != y;

!(x == y);

有关比较算法的详细信息,请参阅 相等性 运算符的页面。

与相等性运算符一样,不等式运算符将尝试转换和比较不同类型的操作数

js
3 != "3"; // false

要防止这种情况,并要求不同类型被视为不同,请改用 严格不等式 运算符

js
3 !== "3"; // true

示例

无类型转换的比较

js
1 != 2; // true
"hello" != "hola"; // true

1 != 1; // false
"hello" != "hello"; // false

带类型转换的比较

js
"1" != 1; // false
1 != "1"; // false
0 != false; // false
0 != null; // true
0 != undefined; // true
0 != !!null; // false, look at Logical NOT operator
0 != !!undefined; // false, look at Logical NOT operator
null != undefined; // false

const number1 = new Number(3);
const number2 = new Number(3);
number1 != 3; // false
number1 != number2; // true

对象的比较

js
const object1 = {
  key: "value",
};

const object2 = {
  key: "value",
};

console.log(object1 != object2); // true
console.log(object1 != object1); // false

规范

规范
ECMAScript 语言规范
# sec-equality-operators

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅