즉시 실행 함수 표현은 정의되자마자 즉시 실행되는 자바스크립트 함수이고 self-exeucting anonymous function으로 알려진 디자인 패턴이다.
(function(){
statements
})();
global scope에 불필요한 변수를 추가해서 오염시키는 것을 방지하고 IFEE 안에 다른 변수들이 접근하는 것을 막을수 있는 방법으로 많은 오픈소스 라이브러리를 정의할때 사용되는 방식이기도 하다.
(function () {
var aName = "Barry";
})();
// IIFE 내부에서 정의된 변수는 외부 범위에서 접근이 불가능하다.
aName // throws "Uncaught ReferenceError: aName is not defined"
IIFE를 변수에 할당하면 IIFE 자체는 저장되지 않고 함수가 실행된 "결과"만 저장된다.
var result = (function () {
var name = "Barry";
return name;
})();
// 즉시 결과를 생성한다.
result; // "Barry"