試一試
console.log(1 === 1);
// Expected output: true
console.log("hello" === "hello");
// Expected output: true
console.log("1" === 1);
// Expected output: false
console.log(0 === false);
// Expected output: false
語法
js
x === y
描述
嚴格相等運算子 (=== 和 !==) 提供了 IsStrictlyEqual 語義。
- 如果運算元的型別不同,則返回
false。 - 如果兩個運算元都是物件,則僅當它們引用同一個物件時才返回
true。 - 如果兩個運算元都是
null或兩個運算元都是undefined,則返回true。 - 如果任一運算元為
NaN,則返回false。 - 否則,比較兩個運算元的值
- 數字必須具有相同的數值。
+0和-0被認為是相同的值。 - 字串必須具有相同順序的相同字元。
- 布林值必須都是
true或都是false。
- 數字必須具有相同的數值。
此運算子與相等 (==) 運算子之間最顯著的區別是,如果運算元的型別不同,== 運算子會嘗試在比較之前將它們轉換為相同的型別。
示例
比較相同型別的運算元
js
"hello" === "hello"; // true
"hello" === "hola"; // false
3 === 3; // true
3 === 4; // false
true === true; // true
true === false; // false
null === null; // true
比較不同型別的運算元
js
"3" === 3; // false
true === 1; // false
null === undefined; // false
3 === new Number(3); // false
比較物件
js
const object1 = {
key: "value",
};
const object2 = {
key: "value",
};
console.log(object1 === object2); // false
console.log(object1 === object1); // true
規範
| 規範 |
|---|
| ECMAScript® 2026 語言規範 # sec-equality-operators |
瀏覽器相容性
載入中…