즉시 실행 함수 표현(IIFE, Immediately Invoked Function Expression)은 정의되자마자 즉시 실행되는 함수를 말한다.
(function () {
statements
})();
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);
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의 문제점!