Repaso
English
Frontend y webIntermedioFE-03

¿Qué se registra en consola?

for (var i = 0; i < 3; i++) {
  setTimeout(() => console.log(i), 0);
}

Opciones

  1. 0 1 2
  2. 3 3 3 (Opción correcta)
  3. undefined x3
  4. 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.

Términos clave

Practica esta pregunta en Repaso