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値が変更される可能性がなくなりました。