Estoy intentando hacer un código simple que imprima los números del 0 al 4 en la consola, con un segundo de retraso entre cada uno. He usado un bucle for y setTimeout, pero el resultado me está volviendo loco.
for (var i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i);
}, 1000);
}Yo esperaba que imprimiera 0, luego 1, luego 2, etc. Pero en su lugar, espera un segundo y de repente imprime "5" cinco veces seguidas. ¿Alguien me puede explicar qué magia negra es esta?