Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Node.js24.x】Object::isDeepStrictEqual()メソッドの使い方

isDeepStrictEqualメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

isDeepStrictEqualメソッドは、Objectオブジェクトに関連する機能として、2つの値が厳密に深く等しいかどうかを判定し、その結果を真偽値で返すメソッドです。Node.js環境で利用でき、特にプログラムのテストにおいて期待値と実際の結果を比較したり、複雑な設定オブジェクトの同一性を検証したりする際に非常に役立ちます。

このメソッドが評価する「厳密に深く等しい」という状態は、単にメモリ上の参照が同じであるか(JavaScriptの厳密等価演算子===のように)を確認するものではありません。そうではなく、値そのものの構造と内容が、型まで含めて完全に一致していることを意味します。具体的には、数値、文字列、真偽値といったプリミティブ型の場合は、その値と型が全く同じであれば等しいと判断します。

一方、オブジェクトや配列のような非プリミティブ型の場合、それらを構成するすべてのプロパティや要素が再帰的に比較されます。つまり、配列であれば各要素が順に、オブジェクトであれば各プロパティの名前と値がすべて厳密に等しいかを検証します。この際、オブジェクトのプロパティの定義順序や、プロトタイプチェーンは比較の対象外となります。これにより、たとえメモリ上の異なる場所に存在するインスタンスであっても、そのデータ構造と内容が一致していれば真と判定され、アプリケーションのデータ整合性を高めるための信頼性の高い比較機能を提供します。

構文(syntax)

1const util = require('util');
2const objectA = { a: 1, b: { c: 2 }, d: [3, 4] };
3const objectB = { a: 1, b: { c: 2 }, d: [3, 4] };
4const result = util.isDeepStrictEqual(objectA, objectB);

引数(parameters)

a, b

  • a: any: 比較する最初の値
  • b: any: 比較する2番目の値

戻り値(return)

boolean

2つの値を、値だけでなく構造(ネストされたオブジェクトや配列など)まで厳密に比較し、それらが完全に等しい場合はtrue、そうでない場合はfalseを返します。

関連コンテンツ

関連プログラミング言語