JavaScriptでオブジェクトの型を調べることが生じたので、その方法をいろいろと調べた結果、instanceof演算子を使うと型を調べることができきた。このことを忘れないよう記録しておく。
まず、instanceof演算子とは、左のオペランド(演算子引数)に指定したオブジェクトが、右のオペランド(演算子引数)に指定したクラスのインスタンスかどうかを調べる演算子である。 指定したオブジェクトが、指定したクラスのインスタンスである場合、「真(true)」を返す。 指定したオブジェクトが、指定したクラスのインスタンスでない場合、「偽(false)」を返す
構文
オブジェクト名 instanceof クラス名
- 「オブジェクト名」のオブジェクトが、「クラス名」のクラスのインスタンスかどうかを調べる。
- 「オブジェクト名」のオブジェクトが、「クラス名」のクラスのインスタンスである場合、「真(true)」を返す。
- 「オブジェクト名」のオブジェクトが、「クラス名」のクラスのインスタンスでない場合、「偽(false)」を返す。
サンプル
<script type="text/javascript"> var cTime = new Date(); document.write( cTime + "<br>" ); document.write((cTime instanceof Date) + "<br>" ); document.write((cTime instanceof Object) + "<br>" ); document.write((cTime instanceof String) + "<br>" ); document.write((cTime instanceof Array) + "<br>" ); var month = ['1月','2月','3月','4月','5月','6月']; for(var key in month){ document.write(month[key] + " "); } document.write("<br>"); document.write((month instanceof Date) + "<br>" ); document.write((month instanceof Object) + "<br>" ); document.write((month instanceof String) + "<br>" ); document.write((month instanceof Array) + "<br>" ); </script>
出力結果は次のとおり
Tue May 7 11:54:22 UTC+0900 2013 true true false false 1月 2月 3月 4月 5月 6月 false true false true