小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

JavaScriptのvar宣言について

JavaScriptの変数はvar宣言したり、しなかったりしますが、意味があるのでしょうか?
Perlでのmy宣言したレキシカル変数はブロック単位に有効ですが、JavaScriptでのvar宣言は関数単位(内部関数含む)に有効です。
ただし、グローバルスコープ(Perlでのmainパッケージにあたる)でvar宣言された変数と宣言しない変数はともにグローバル変数になる。
また、スコープ・チェーンといって下位関数で使用された変数が上位関数で宣言されているかを調べ、グローバルスコープまできても宣言されていない場合は、変数は未定義とみなされ、グローバル変数として扱われる。
このような性質からJavaScriptの変数のvar宣言は、明示的に宣言したほうが良いと思います。


参考リンク:Ajax時代のJavaScriptプログラミング再入門
http://www.atmarkit.co.jp/fdotnet/ajaxjs/index/index.html