-
strict equality (厳密等価比較)
-
deep equality (深い等価比較)
-
厳密等価比較: 厳密等価比較は、
===
演算子を使用して行います。この演算子は、オブジェクトの参照が同じであるかどうかを比較します。つまり、オブジェクトが同じインスタンスである場合にのみtrue
を返します。
例:
const obj1 = { name: "John" };
const obj2 = { name: "John" };
console.log(obj1 === obj2); // false
上記の例では、obj1
とobj2
は異なるオブジェクトインスタンスであり、厳密等価比較はfalse
を返します。
- 深い等価比較:
深い等価比較は、オブジェクトの中身まで比較する方法です。これには、
JSON.stringify()
メソッドを使用してオブジェクトを文字列に変換し、その後、変換された文字列の比較を行います。
例:
const obj1 = { name: "John" };
const obj2 = { name: "John" };
console.log(JSON.stringify(obj1) === JSON.stringify(obj2)); // true
上記の例では、JSON.stringify()
メソッドによってオブジェクトが文字列に変換され、その後、文字列の比較が行われます。オブジェクトの中身が同じであるため、深い等価比較はtrue
を返します。
以上がJavaScriptにおけるオブジェクトの等価性比較の方法です。必要に応じて、これらの方法を使ってオブジェクトの等価性を確認してください。