← Back to NOTES 🌰 ← Effective JavaScript 🤿

← 아이템 12 - 변수 호이스팅에 대해 이해하라

핵심 요약

클로저와 호이스팅으로 인해 반복문에서 생성되는 함수들이 예상과 다르게 동작할 수 있다. 즉시 실행 함수 표현식(IIFE)을 사용하여 각 반복에서 독립적인 지역 스코프를 생성하면 이 문제를 해결할 수 있다.

자세한 내용

반복문에서의 클로저 문제

문제 상황

반복문 내에서 함수를 생성할 때, 모든 함수가 같은 변수를 참조하여 예상치 못한 결과가 발생

호이스팅의 영향

해결 방법들

방법 1: 로컬 변수 생성 (잘못된 접근)

IIFE 내부에서 새로운 변수를 생성하지만 여전히 외부 변수 참조

방법 2: IIFE 내부에서 올바른 변수 참조

IIFE 내부에서 생성한 로컬 변수를 함수에서 참조

방법 3: 매개변수를 통한 바인딩 (권장)

IIFE의 매개변수를 통해 현재 값을 바인딩