JavaScriptに即時関数というものがあります。即時関数は関数を定義すると同時に実行するための構文として覚えていたのですが、その必要性がイマイチ見出せませんでした。それは、「関数を定義と同時に実行するのは分かるけど、別に普通に関数を定義して、その関数を呼び出せばいい」って思ったからです。
即時関数は次のように書きます。
即時関数の構文 (function () { //関数の中身・・・ }());
しかし、JavaScriptを書いていて関数を定義と同時に実行する場面にでくわすことは殆どありませんでした。調べてみると、即時関数を用いる理由は「即時関数はスコープを汚染せずに新たなスコープを作成するための唯一の手段」であることが分かりました。
JavaScriptには他の言語にあるようなブロックスコープがありません。あるのはグローバルスコープと関数スコープだけです。そのため、関数は任意にスコープを作るための唯一の手段だと言えます。
即時関数を使った例 //結果を格納する変数 var result = 0; result = (function () { //結果を求めるための一時変数 var a = 1; var b = 2; return a + b; }()); console.log(result); //「3」が出力される。