[JavaScript] 즉시 실행 함수(IIFE)

Rachaen·2023년 1월 11일

IIFE란

즉시 실행 함수 표현(IIFE, Immediately Invoked Function Expression)은 정의되자마자 즉시 실행되는 함수를 말한다.

(function () {
    statements
})();
  • 딱 한 번만 사용될 함수에
  • 전역 변수들을 사용하지 않고, 복잡한 기능을 일회성으로 실행할 때
  • 다른 코드들과 변수명이나 상수명 충돌을 막귀 위해
  • 오늘날에는 블록과 모듈의 사용을 대체하고 있다.(이전의 var는 블록 외에서 사용될 수 있었음)
const initialMessage = (function () {
  var month = 8;
  var day = 15;
  var temps = [28, 27, 27, 30, 32, 32, 30, 28];
  var avgTemp = 0;
  for (const temp of temps) {
    avgTemp += temp
  }
  avgTemp /= temps.length;

  return `${month}${day}일 평균기온은 섭씨 ${avgTemp}도입니다.`;
})();

console.log(initialMessage);
console.log(month);
  • IIFE를 변수에 할당하면 IIFE 자체는 저장되지 않고, 함수가 실행된 결과만 저장된다.
let initialMessage;

{
  const month = 8;
  const day = 15;
  const temps = [28, 27, 27, 30, 32, 32, 30, 28];
  let avgTemp = 0;
  for (const temp of temps) {
    avgTemp += temp
  }
  avgTemp /= temps.length;

  initialMessage = `${month}${day}일 평균기온은 섭씨 ${avgTemp}도입니다.`;
};

console.log(initialMessage);
console.log(month); // const를 var로 바꾸고 실행해보면 8이 나옴. var의 문제점!

mdn IIFE

profile
개발을 잘하자!

0개의 댓글