JavaScriptのundefinedとnull

JavaScriptには5つの基本型(プリミティブ型)とオブジェクト型があり、基本型には数値型、文字列型、真偽値型、undefined型、null型があります。

ここでは、基本型のうちやや特殊な型であるundefined型とnull型について説明します。

undefined型

undefined型はundefinedという値のみを取り、未定義値あるいは未初期化値を表わします。

例えば、宣言されただけで初期化されていない(何も代入されていない)変数の値はundefinedとなります。undefinedが現れる例を確認しましょう。

初期化されていない

存在しないプロパティを参照

実引数を渡さなかった場合の仮引数

return文がない関数

null型

null型はnull値のみをとる基本型です(typeof nullのように型判定するとobject型が返されますが、JavaScriptのバグと言われています)。

nullは、オブジェクトを何も参照していない状態を表わします。具体的には、オブジェクトが返される場面でそのオブジェクトが存在しない(参照されていない)場合、nullが返されます。

具体例を見てみましょう。

HTML

JavaScript

このように、getElementById()で指定したidを持つ要素オブジェクトがなかった場合などでnullを返します。

undefinedとnullの共通点・相違点

内部的には、undefinedはグローバルオブジェクト(ブラウザの場合はwindowオブジェクト)のプロパティです。

条件式の中でundefined値及びnull値は偽となります(他に偽となるものに0, 空文字があります)。

undefined == nullは型変換されて真となります。ただし、 undefined === nullは偽となります。