[JS] Immediately Invoked Function Expression(IIFE)

JunSeok·2023년 12월 15일
0

Javascript

목록 보기
11/16

Immediately Invoked Function Expression(IIFE)

IIFE는 즉시 실행 함수 표현을 의미한다.
즉시 실행하고 바로 사라진다.

사용

(function() {
	console.log('IIFE');
})()
  • 이름 없는 함수 식을 괄호로 래핑하면 함수식(function statement)이 아닌 표현(expression)으로 속일 수 있다.
  • 그리고 다른 함수들과 마찬가지로 뒤에 ()를 붙여 호출한다.
  • 이는 자바스크립트만의 특징이 아니고 개발자들이 생각해낸 패턴에 가깝다.

등장 이유

  • ES6 이전에는 전역 스코프와 함수 스코프만 존재했다.
    그래서 if나 for문과 같이 블록(중괄호)안에서 선언된 변수는 외부에서 마음껏 사용할 수 있었다.
  • 개발 도중, 블록 안에서 선언한 변수를 외부에서 사용하지 못하게 하고 싶었다.
  • 블록 스코프를 인위적으로 만들어내기 위해 IIFE와 같은 패턴이 등장했다.
  • 스코프를 만들기 위해 함수를 선언하여 호출했고, 스코프만을 위한 함수였기 때문에 한 번 호출 이후 바로 사라지게 만들었다.
  • 하지만 ES6 이후 블록 스코프가 등장했기 때문에 모던 자바스크립트에서는 위와 같은 용도로 IIFE 패턴을 사용하지 않는다.
  • 그래도 한 번만 사용하는 함수를 만들 때는 유용하다.
    - 전역 변수 제한
    - 비동기 함수 실행(top-level await 구현 가능)

참조

https://developer.mozilla.org/ko/docs/Glossary/IIFE
https://www.udemy.com/course/the-complete-javascript-course/

profile
최선을 다한다는 것은 할 수 있는 한 가장 핵심을 향한다는 것

0개의 댓글