不等式 (!=)

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

¥The inequality (!=) operator checks whether its two operands are not equal, returning a Boolean result. Unlike the strict inequality operator, it attempts to convert and compare operands that are of different types.

Try it

语法

¥Syntax

js
x != y

描述

¥Description

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

¥The inequality operator checks whether its operands are not equal. It is the negation of the equality operator so the following two lines will always give the same result:

js
x != y;

!(x == y);

比较算法的详细信息请参见 equality 算子页面。

¥For details of the comparison algorithm, see the page for the equality operator.

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

¥Like the equality operator, the inequality operator will attempt to convert and compare operands of different types:

js
3 != "3"; // false

为了防止这种情况,并要求不同的类型被认为是不同的,请改用 严格的不平等 运算符:

¥To prevent this, and require that different types are considered to be different, use the strict inequality operator instead:

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

示例

¥Examples

不进行类型转换的比较

¥Comparison with no type conversion

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

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

与类型转换的比较

¥Comparison with type conversion

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

对象比较

¥Comparison of objects

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

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

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

规范

Specification
ECMAScript Language Specification
# sec-equality-operators

¥Specifications

浏览器兼容性

BCD tables only load in the browser

¥Browser compatibility

也可以看看