{category}

JavaScript - その他の演算子

instanceof

インスタンスオブ(基本的な構文

意味 オブジェクトの型判定


instanceofとは?

指定されたオブジェクトが特定のオブジェクトタイプに属しているかどうかをチェックします。

instanceofの具体的な使い方

instanceof演算子の基本的な使用例

class Animal {
  constructor(name) {
    this.name = name;
  }
}

class Dog extends Animal {
  bark() {
    console.log('Woof!');
  }
}

const myDog = new Dog('ポチ');

console.log('myDog instanceof Dog:', myDog instanceof Dog);
console.log('myDog instanceof Animal:', myDog instanceof Animal);
console.log('myDog instanceof Object:', myDog instanceof Object);
console.log('myDog instanceof Array:', myDog instanceof Array);

👇出力結果

myDog instanceof Dog: true
myDog instanceof Animal: true
myDog instanceof Object: true
myDog instanceof Array: false

クラスの継承関係におけるinstanceofの動作を確認します。Dogクラスのインスタンスが、Dog、Animal、Objectのインスタンスであることを確認し、Arrayのインスタンスでないことを確認します。

instanceof演算子を使った型チェック

function processValue(value) {
  if (value instanceof Date) {
    return `日付: ${value.toLocaleDateString('ja-JP')}`;
  } else if (value instanceof Array) {
    return `配列の長さ: ${value.length}`;
  } else if (value instanceof Function) {
    return `関数の結果: ${value()}`;
  } else {
    return '不明な型';
  }
}

console.log(processValue(new Date()));
console.log(processValue([1, 2, 3]));
console.log(processValue(() => 'こんにちは'));
console.log(processValue('文字列'));

👇出力結果

日付: 2023/5/23
配列の長さ: 3
関数の結果: こんにちは
不明な型

異なる型の値に対して適切な処理を行う例です。日付オブジェクト、配列、関数、それ以外の型に対して、それぞれ異なる処理を行います。

instanceofに関するよくある質問

Q. instanceofの使用目的は?
A. instanceofは、オブジェクトが特定のクラスやコンストラクタ関数のインスタンスであるかどうかを判定するために使用します。これは、オブジェクトの型チェックや、継承関係の確認に役立ちます。
Q. プリミティブ値での注意点は?
A. プリミティブ値(文字列、数値、真偽値)に対してinstanceofを使用すると、常にfalseを返します。これは、プリミティブ値がオブジェクトではないためです。ただし、new String()やnew Number()で作成されたオブジェクトに対しては、trueを返します。
Q. 継承関係での動作は?
A. instanceofは継承関係を考慮します。つまり、子クラスのインスタンスに対して親クラスをinstanceofで確認すると、trueを返します。例えば、全てのオブジェクトはObjectのインスタンスなので、{} instanceof Objectはtrueを返します。

instanceofが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、JavaScriptのinstanceofや<=、<、const、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


JavaScriptを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!JavaScriptはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

<=

小なりまたは等しい

種類: 比較演算子

<

小なり

種類: 比較演算子

const

変数の宣言

種類: 宣言・代入

Object.entries()

オブジェクトの内容表示

種類: Object

Number.isFinite()

有限数判定関数

種類: Number