JavaScript: undefinedの意味とチェック方法

JavaScriptではnullとは別にundefined(未定義)という値があります。

次のようなときがundefinedです。

  • 初期化されていない変数の値
  • 存在しないオブジェクトプロパティを読み出したときの値
  • 存在しない配列の要素を読み出したときの値
  • 戻り値のない関数が返す値
  • 関数の呼び出し時に指定されなかった引数の値

undefinedの変数や配列要素に対して何かしらの処理を行おうとするとエラーが発生する場合がありますので、 事前にundefinedかどうかをチェック(確認)する必要があります。

undefinedかどうかをチェック(確認)する方法

typeof hoge === undefined

typeof を使うのが一番オーソドックスな方法かと思います。

if (typeof hoge === undefined){
    // undefinedの場合の処理
}else{
    // undefinedでない場合の処理
}

//----------------------------------------------

// undefinedでない場合だけでいいなら
if (typeof hoge !== undefined){
    // undefinedでない場合の処理
}

hoge === undefined

一番シンプルな方法です。
if (hoge === undefined){
    // undefinedの場合の処理
}else{
    // undefinedでない場合の処理
}

undefinedはECMAScript5から読み出しのみに修正された

ECMAScript3では、undefinedは読み書き可能な変数でした。 ですから値を変更することで、問題が起きる可能性がありました。

ですがECMAScript5では修正され、undefinedは読み出しのみとなっています。 これによりundefined値が変更される可能性がなくなりました。