1) 첫 번째 (): 전역 선언을 막고, IIFE 내부 안으로 다른 변수의 접근을 막아준다.
2) 두 번째 (): 즉시 실행 함수를 생성하는 괄호이다.
// 기본 형태
(
function () {
// Do fun stuff
}
)()
1) 내부의 변수는 외부로부터의 접근이 불가능하다.
2) IIFE를 변수에 할당하면 IIFE 자체는 저장되지 않고, 함수가 실행된 결과만 저장된다.
3) 앞에 연산자를 붙여서 사용할 수 있다. (but, 화살표 함수에서는 무조건 "("로 시작해야 한다.)
1) 함수를 할당받을 변수를 지정해야 한다.
2) 함수를 즉시 호출해야 한다.
(function (a, b) { // 할당받을 변수 지정됨.
return console.log(a - b); //
})(1, 2); // 즉시 호출됨.