不相等(!=)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

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

尝试一下

console.log(1 != 1);
// Expected output: false

console.log("hello" != "hello");
// Expected output: false

console.log("1" != 1);
// Expected output: false

console.log(0 != false);
// Expected output: false

语法

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,看看逻辑非运算符
0 != !!undefined; // false,看看逻辑非运算符
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

规范

Specification
ECMAScript® 2025 Language Specification
# sec-equality-operators

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
Inequality (a != b)

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

参见