JavaScriptの変数は初期化してなかったらundefinedになる。

Javascriptの変数は初期化してなかったらundefinedになるという話を書いときます。

JavaScriptでは初期化されていない変数には全て「undefined」という値が入っています。
引用元: JavaScript:undefined値の判定: Architect Note

検索エンジンで一発目にヒット、グーグルもだけど情報提供者に感謝。

スポンサーリンク

変数を初期化してないとき・初期化したときの挙動

undefinedの実験で簡単なコードを書いてみます。すると以下のようになりました。

var obj;
console.log(obj);//undefined

obj += 'hoge';
console.log(obj);//undefinedhoge

obj = '';
obj += 'hoge';
console.log(obj);//hoge

1行目でobjという変数の宣言だけ行っていますが、これだけではobj変数は初期化されていないのでundefinedになっているわけですね。4行目で文字列の連結を行っていますが、とくにエラーはおきないものの、undefinedhogeとなってよくわからないことになります。→ここで「なんだ?この?undefined?ってのは?」みたいなことにならないようにしたいところです。

7行目でようやく変数の初期化を行っています。そもそもJavascriptにおける変数の初期化とはなにか?という疑問がわいてくるかもしれません。初期化するならとにかく何か値を代入してやればOKです。上記の例では空の文字列を代入しています。これを行ったあとconsole.logで確認するとhogeとだけ表示され、undefinedはなくなりました。(undefinedがなくなったという表現はおかしいですが)

スポンサーリンク

undefinedかどうか確認する

undefinedかどうかを確認するコードはいろいろあると思いますが、typeofを使って比較する方法がよく使われているそうです。下記のコードを追加して実行してみました。

console.log(typeof obj);//string
//objはundefinedではないので何も表示されない↓
if(typeof obj === "undefined") console.log(obj);

obj変数をtypeofで確認してみると文字列なのでstringと返ってきました。undefinedと比較すると、偽になるので、console.logは実行されず何もおきませんでした。

まとめ

わたしみたいに「なんだ?このundefinedってのは?」というようにならないようにしましょう。Javascriptの変数は初期化していなかったらundefinedになる!!!

確認済みです。
javascript undefined 確認
この記事の情報は以上になります。

コメント

タイトルとURLをコピーしました