¿Qué se registra en consola?
for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 0);
}Opciones
- 0 1 2
- 3 3 3 (Opción correcta)
- undefined x3
- 2 2 2
Respuesta
3 3 3
Por qué
Los callbacks de setTimeout se ejecutan más tarde, cuando el bucle ya terminó.
var crea UNA variable i para toda la función, compartida por los tres callbacks. Cuando se ejecutan, i ya vale 3.
Con let i, cada iteración recibe su propia i nueva, así que registra 0 1 2.
Recuerda
Bucles con callbacks: usa let, no var.