for (var i = 1; i < 6; i++) { setTimeout(function () { console.log(i); }, i * 1000); } console.log(i);
var를 let으로 바꾸면 차례대로 출력되는걸 알 수 있는데, let의 경우 for문 코드블럭 안에 i 값이 생성되서 setTimeout의 function안에있는 console.log(i) 가 값을 찾을 수 있는거라고 이해했습니다.
궁금한점은 let으로 설정을 해도 반복문은 0.몇 초만에 실행되니까 코드블럭안에 i값이 생성된다고 하더라도 i = 5로 덮어씌어질것같은데 어떻게 i값을 1부터 차례로 찾을 수 있는건가요???