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

【JavaScript ECMAScript】instanceof演算子の使い方

instanceof演算子の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

instanceof関数は、あるオブジェクトが特定のコンストラクターのインスタンスであるかどうかを判定する関数です。この演算子は、左側のオペランドにオブジェクトを、右側のオペランドにコンストラクター(またはクラス)を指定して使用します。評価結果として、オブジェクトがコンストラクターのprototypeチェーン上に存在する場合はtrueを、そうでない場合はfalseを返します。

具体的には、instanceofは左オペランドのオブジェクトのプロトタイプチェーンを辿り、右オペランドのコンストラクターのprototypeプロパティがそのチェーン内に見つかるかを確認します。これにより、オブジェクトが特定のクラスから派生したものであるか、あるいはそのクラスのインスタンスであるかを判断できます。

システム開発において、例えば、関数が受け取る引数が期待するオブジェクト型であるかを確認したり、アプリケーション内で特定のカスタムオブジェクトを識別したりする際に非常に有用です。これにより、プログラムの堅牢性を高め、予期せぬエラーを防ぐことができます。

ただし、instanceofはプリミティブ値(数値、文字列、真偽値、null、undefinedなど)に対して使用された場合、常にfalseを返します。これは、プリミティブ値がオブジェクトではなく、プロトタイプチェーンを持たないためです。また、typeof演算子が変数の基本的な型を文字列として返すのに対し、instanceofはオブジェクトの継承関係に基づいてより具体的なインスタンスのチェックを行う点で異なります。

公式リファレンス: instanceof

構文(syntax)

1class MyClass {}
2const myInstance = new MyClass();
3console.log(myInstance instanceof MyClass);

引数(parameters)

引数なし

引数はありません

戻り値(return)

boolean

指定されたオブジェクトが、指定されたクラスのインスタンスである場合に true を、そうでない場合に false を返します。

関連コンテンツ

関連プログラミング言語