1. 코드 형태
(() => {
})();
위 코드는 "즉시 실행 함수(IIFE, Immediately Invoked Function Expression)"라고 부릅니다.
2. IIFE란 무엇인가?
IIFE는 함수를 정의하자마자 즉시 실행하는 함수입니다.
- 함수를 만들고
- 바로
()를 붙여 호출합니다 - 외부와 독립된 스코프를 만들기 때문에 전역 변수 오염을 막습니다
3. 구조 설명
( // 함수를 괄호로 감싸서 '표현식'으로 만듦
() => {
// 여기가 독립된 스코프
}
)(); // 마지막 () 가 실제 "호출"
4. 왜 사용하는가?
✔ 전역 변수 오염 방지
(() => {
const a = 10;
})();
console.log(a); // ❌ 오류
✔ 초기 실행(초기화 코드)에 적합
(() => {
console.log("초기화 실행!");
})();
✔ 스코프 분리로 안전한 코드 작성
5. 마지막 () 의 의미
마지막 ()의 의미는 “정의된 함수를 실행해라(호출해라)” 입니다.
(() => {})();
↑ 함수 호출
만약 ()를 빼면?
→ 함수 정의만 존재하고 실행되지 않습니다.
6. 일반 함수와 비교하면 쉽게 이해 가능
function test() {
console.log("hello");
}
test(); // ← 함수 호출
IIFE도 동일한 구조입니다:
(function() {
console.log("hello");
})();
7. 일반 함수 버전
(function() {
console.log("일반 IIFE");
})();
또는 이름 붙인 버전:
(function init() {
console.log("초기화");
})();
8. 실제 예시
(() => {
const box = document.querySelector(".box");
if (!box) return;
[...box.children].forEach((el, idx) => {
console.log(idx, el);
});
})();
독립된 초기화 코드 작성 시 매우 유용한 패턴입니다.
📌 요약
요소 설명
(function(){}) 함수 정의
() 정의된 함수를 즉시 호출
목적 전역 오염 방지, 초기화 실행, 안전한 스코프 생성
답글 남기기