앞에서 작성한 반복문에서 let을 var로 바꾸면 어떻게 될까요?
const number = [1, 3, 5, 7];
for (var i = 0; i < number.length; i++) {
setTimeout(() => {
console.log(number[i]);
}, 1000 * (i + 1));
}
단순히 var로 바꿨을 뿐인데 결과가 완전히 달라집니다. 콘솔에 undefined만 네 번 출력됩니다. var와 let은 무엇이 다르길래 이런 현상이 일어날까요?
이번에는 number[i] 대신 i를 콘솔에 출력해 봅시다.
const number = [1, 3, 5, 7];
for (var i = 0; i < number.length; i++) {
setTimeout(() => {
console.log(i);
}, 1000 * (i + 1));
}