首頁 >web前端 >js教程 >為什麼兩個空 JavaScript 物件比較不相等?

為什麼兩個空 JavaScript 物件比較不相等?

Linda Hamilton
Linda Hamilton原創
2024-12-04 01:59:11853瀏覽

Why Do Two Empty JavaScript Objects Not Compare as Equal?

為什麼兩個相同的物件彼此不同?

JavaScript 中的相等運算子 (==) 和嚴格相等運算子(===) 用於比較值。但是,在比較物件時,這些運算符的行為與您預期的不同。

考慮以下程式碼:

var a = {};
var b = {};

console.log(a == b); // returns false
console.log(a === b); // returns false

此程式碼對兩個表達式都記錄 false,即使 a 和 b 都是空物體。這是為什麼?

常規 (==) 和嚴格 (===) 相等之間的主要區別在於嚴格相等運算符禁用類型轉換。由於 a 和 b 都是對象,因此在這種情況下,相等運算子的類型並不重要。

無論使用何種相等運算符,只有在比較 相同的物件時,物件比較才會計算為 true 。換句話說,給定var a = {}, b = a, c = {};,a == a, a == b,但是a != c.

兩個不同的物件(即使它們有零個或完全相同的屬性)永遠不會相等。要比較兩個物件屬性的相等性,您可以使用 Object.is() 方法或提供的答案中概述的方法。

以上是為什麼兩個空 JavaScript 物件比較不相等?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn