不等 (!=)

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

不相等運算子 (!=) 檢查其兩個運算元是否不相等,並返回一個布林值結果。與嚴格不相等運算子不同,它會嘗試轉換並比較不同型別的運算元。

試一試

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, 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® 2026 語言規範
# sec-equality-operators

瀏覽器相容性

另見