var funcs = []; // 함수의 배열을 생성하는 for 루프의 i는 전역 변수다. for (var i = 0; i < 3; i++) { funcs.push(function () { console.log(i); }); } // 배열에서 함수를 꺼내어 호출한다. for (var j = 0; j < 3; j++) { funcs[j](); }

위 코드의 실행 결과로 0, 1, 2를 기대할 수도 있지만 결과는 3이 세 번 출력된다. 그 이유는 for 루프의 var i가 전역 변수이기 때문이다. 0, 1, 2를 출력하려면 아래와 같은 코드가 필요하다.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡ

var이 반복문을 통해서 3번 실행되면 funcs 배열에 console.log(0) , console.log(1) , console.log(2) 가 들어가고

아래 반복문을 통해서 호출하면 0 1 2 나오는거 아닌가요 ? 왜 3이 3번 나오나요 ??