Why the following code returns 10 times 10 and print hey
as first line?
for (var i = 0; i < 10; ++i) {
setTimeout(() => console.log(i), 0)
}
console.log('hey')
When if instead I use let
I get properly the counting, but why the line hey
is always printed first?
for (let i = 0; i < 10; ++i) {
setTimeout(() => console.log(i), 0)
}
console.log('hey')
My question actually contains two:
- First why
hey
is printed first. - Why using
let
the counting is printed properly.