JavaScriptおれおれAdvent Calendar 2014 – 01日目

最初なんで最初に書くやつの話。

(function() {
    // …
})();

これですね。これ何か呼び方あるの?

なにこれ

グローバル変数にならないようにする仕組み。

スコープ問題

JavaScriptではスコープ(変数の有効範囲)は関数単位(function(){})になるのが基本。

そして一番外側、どの関数の中でもないものは「グローバルスコープ」に所属する「グローバル変数」となり、どこからでも利用できる変数になる。そうなるとどこかで変数の名前がかぶった際、勝手に値が変わったりして大変恐ろしい事になってしまう。

そこで、ファイル全体を関数で括る事でスコープを生成して、グローバルではない変数にしておこう、というもの。ただしvar宣言なしに変数を使い始めると、結局グローバル変数になってしまうので注意。

(さらに…)