본문 바로가기
FrontEnd/JavaScript

즉시 실행 함수 ( IIFE )

by 해학 2022. 12. 5.
728x90


정의되자마자 즉시 실행되는 함수 입니다. 

소괄호 () 로 함수를 감싸서 실행하는 문법을 사용합니다.
ex)

(function (){
	console.log("안녕하세요");
    })();
    
(()=>{
	console.log("화살표 함수도 가능합니다");
    })();
기명함수로 사용할 수 있지만 재사용을 할 수 없기 때문에 익명함수로 사용합니다.

 

Why Use?

 

  1.  필요없는 전역 변수 생성을 줄일 수 있습니다.
즉시 실행 함수를 선언 시 내부 변수가 전역으로 저장되지 않아 전역 스코프의 오염을 줄일 수 있습니다.

    2. 보호 가능한 변수를 만들 수 있습니다.

즉시 실행 함수는 외부에서 접근할 수 없는 자체적 스코프를 가져 외부 로부터 변수를 보호할 수 있습니다.

 

How Use?

초기화 

ex)
let isAdult;

((age)=>{
let reset = age;
if (age >= 20) {
        isAdult = true;
    } else {
        isAdult = false;
    }
})(20);

console.log(isAdult); //  true
console.log(currentAge); //  Uncaught ReferenceError: currentAge is not defined
전역에서 선언된 값이 저장되어 않고, 초기화 되었습니다.

 

라이브러리 전역 변수의 충돌 방지

jQuery나 Prototype 라이브러리는 $ 라는 전역 변수를 사용하는데 같이 사용할 때 충돌을 방지 할 수 있습니다.
ex)

(function ($) {
    // $ 는 jQuery object
})(jQuery);
728x90

'FrontEnd > JavaScript' 카테고리의 다른 글

do while  (0) 2023.01.02
중첩 함수  (0) 2022.12.05
함수 선언과 변수 선언의 차이  (0) 2022.12.05
함수를 사용하는 이유  (0) 2022.12.05
구조 분해 할당  (0) 2022.11.29