Hint
let creates a new variable per iteration — each closure gets its own copy.
for (let i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 0);
}0 1 2
Explanation: let is block-scoped. Each loop iteration creates a NEW binding of i. Each closure captures its own unique i.
Key Insight: let creates a new variable per iteration — each closure gets its own copy.