JavaScriptのプリミティブ型は下記の5つのみ。
それ以外の配列や関数などは全てobjectとなる。

  • boolean
  • number
  • string
  • undefined
  • null

よく同一視されるundefinedとnullの違いとしては、

  • undefinedは未定義の状態、つまり何も設定されていない状態
  • nullは何もない状態

であり、undefinedは変数宣言を行って値を入れていない状態でセットされるが、nullは意図的に設定しなければ、その値を示さない。
またES5以前の環境ではundefinedはグローバルオブジェクトで値を書き換えることができたため、void 0などの記法を用いて確実にundefinedを指すようにすることが多かったが、モダンブラウザでは単純な同値比較でOK。
typeof演算子を使った場合には、他のプリミティブ型と同じく、undefinedはundefinedを指すが、nullはobjectを指す(ちなみにobjectの中で関数のみfunctionを指す)。

入門書でtypeof演算子と一緒に紹介されるinstanceof演算子は、オブジェクトのプロトタイプチェーンを辿って、指定されたコンストラクタがあるかどうかを調べるもので、つまり全てのオブジェクトはObjectとの比較がtrueになる。
またそのオブジェクトのコンストラクタの名前を取得するには、コンストラクタで生成された全てのオブジェクトが持つ、object.constractorプロパティを参照すればいい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA