Why does my code return undefined if I use var inside a for loop instead of let. I have attached the output for let and var below the code blocks.
const a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (let i = 0; i < 10; i++) {
setTimeout(() => console.log(a[i]), 3000);
}
Output : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
var i = 0;
for (i = 0; i < 10; i++) {
setTimeout(() => console.log(a[i]), 3000);
}
// Output : [undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined ]