たとえば、次のコード
{
var temp = "12";
}
alert(temp); //出力 12
通常のプログラミングの経験によれば、alert 関数は temp 変数にアクセスできません。別のブロックにありますが、JavaScript にはブロック スコープの概念がないため、この構文は JS では機能しませんが、JS プログラム、特に大規模なプログラムやライブラリを作成するときは、名前の競合を防ぐために、制御メカニズムを使用します。変数スコープが必要なので、ブロック スコープの概念を実装するより一般的な方法を次に示します。コードは次のとおりです。
(function() {
var temp = "123";
})();
alter(temp);出力エラー
上記のコードのように、関数式が定義され、すぐに呼び出されます。この形式はブロック スコープの概念を模倣し、ブロックの名前空間を保護します。このメソッドは非常に便利です。一部の大きなプログラム ライブラリ
(JQuery など) では、名前の競合を効果的に回避します。実際、JQuery はこのメソッドを使用してブロック スコープを実装します。