不等式 (!=)
不等式 (!=
) 运算符检查两个操作数是否不相等,并返回布尔结果。与 严格的不平等 运算符不同,它尝试转换和比较不同类型的操作数。
¥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
语法
描述
¥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:
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:
3 != "3"; // false
为了防止这种情况,并要求不同的类型被认为是不同的,请改用 严格的不平等 运算符:
¥To prevent this, and require that different types are considered to be different, use the strict inequality operator instead:
3 !== "3"; // true
示例
不进行类型转换的比较
与类型转换的比较
¥Comparison with type conversion
"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
对象比较
规范
Specification |
---|
ECMAScript Language Specification # sec-equality-operators |
浏览器兼容性
BCD tables only load in the browser
也可以看看
¥See also