[JS] IIFE - 즉시 실행 함수

초코침·2023년 3월 22일
0

JavaScript

목록 보기
22/26

IIFE (Immediately Invoked Function Expression)

함수 정의와 동시에 즉시 호출되는 함수를 즉시 실행 함수라고 한다.

즉시 실행 함수는 단 한 번만 호출되고 다시 호출할 수 없다.


즉시 실행 함수는 일반적으로 함수 이름이 없는 익명 함수를 사용한다.

기명 함수를 사용할 순 있으나 그룹 연산자인 소괄호 내의 기명 함수는 함수 선언문이 아닌 함수 리터럴로 평가되며 함수 이름은 함수 몸체에서만 참조할 수 있는 식별자이기 때문에 다시 호출할 수 없는 함수에 이름을 붙이는 것은 딱히 의미 없다.

→ 함수 몸체 밖에서 foo를 호출했기 때문에 에러가 발생한다.


즉시 실행 함수는 반드시 그룹 연산자로 감싸야 한다.

즉시 실행 함수로 사용하려던 익명 함수를 그룹 연산자로 감싸지 않으면 함수 이름 없이 함수 선언문을 작성한 꼴이 돼 버려 SyntaxError가 발생한다

또한, 즉시 실행 함수로 사용하려던 기명 함수를 그룹 연산자로 감싸지 않으면 자바스크립트 엔진이 암묵적으로 수행하는 세미콜론 자동 삽입 기능에 의해 함수 선언문이 끝나는 위치에 세미콜론을 삽입한다.

그래서 함수 선언문이 끝나는 } 이후에 온 소괄호는 그룹 연산자로 해석이 되고, 그룹 연산자 안에 피연산자가 없기 때문에 에러가 발생한다.

IIFE 예시

값 반환

즉시 실행 함수도 일반 함수처럼 값을 반환할 수 있다.

인수 전달

즉시 실행 함수에도 일반 함수처럼 인수를 전달할 수 있다.

profile
블로그 이사중 🚚 (https://sungjihyun.vercel.app)

0개의 댓글