IIFE는 즉시 실행 함수라고도 부르며, 주로 익명 함수와 함께 사용하여 Global Scope에 영향을 주지 않으면서 (변수를 노출시키지 않으면서) 코드를 실행하고자 할 때 사용한다.
아래는 IIFE를 사용하면서 발생한 간단한 오류에 대한 설명이다.
const printHello = function () {
console.log('hello')
} /* 여기에 세미콜론이 필요! */
(() => {
console.log('IIFE (Immediately Invoked Function Expression)')
})()
위 코드는 첫 번째 함수 선언 뒤에 세미콜론이 누락되어 오류가 발생한다.
const printHello = function (msg) {
console.log(msg)
}('hello')
함수 선언 뒤에 소괄호를 붙이면 함수를 호출한다.
const printHello = function () {
console.log('hello')
}(() => {
console.log('IIFE (Immediately Invoked Function Expression)')
})()
따라서 세미콜론으로 문장의 끝을 표시하지 않으면 의도치 않게 printHello 함수가 실행되어 오류가 발생할 수 있다.