
[JS] 클로저, for문 안에 setTime로 변수를 찍어보자
·
개발/💡 TIL
클로저는 함수와 함수가 선언된 어휘적 환경의 조합을 의미한다! 하지만, 클로저는 for (var i = 0; i 만약 다음과 같이 반복문 안에서, 1초 간격으로 i를 출력하려 했을때 결과는 어떻게 될까? 0부터 시작해 반복문을 돌게 되면서, 1초 간격으로 console 출력값으로 0, 1, 2, 3, 4 를 차례대로 출력하는 것을 예상하겠지만, 결과적으로는 그렇지 않는다. 다음과 같이, 1초마다 숫자 5가 찍혀서 총 다섯번의 5가 출력되는 것을 알 수 있다. 반복문의 흐름을 생각해본다면 아래와 같이 그 과정을 나눠볼 수 있는데, 0setTimeout(() => console.log(i), 0 * 1000); → 즉시 실행1setTimeout(() => console.log(i), 1 * 1..