Typical bug:
for (var i = 0; i < 5; i++) {
setTimeout(() => console.log(i), 100);
}
Output: 5 5 5 5 5
Because var is function-scoped.
✔ Fix
for (let i = 0; i < 5; i++) {
setTimeout(() => console.log(i), 100);
}
Or:
setTimeout(((x)=>()=>console.log(x))(i), 100);
