(function (param1, param2) { //処理 }('hoge', 'fuga')); var result = (function (param1, param2) { return param1 + param2; }(1, 2)); console.log(result); //3が出力される。 ズバリ、スコープの汚染を防ぐため。 JavaScriptのスコープ JavaScriptのスコープは、「グローバルスコープ」と「関数スコープ」のみ。すなわち関数は任意にスコープを作るための唯一の手段である。 関数スコープの中でvarを使って定義された変数は関数の中でローカルな変数になるので、関数の外側の変数を上書きしたりすることはない。 なるべく変数の有効範囲をせばめる 一時変数を使用する一連の処理があった時に、それらの変数をすべてグローバル変数にしてしまうのはアンチパタ