Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

182
Vistas
Diferencia entre var y let in for loop

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

 for(let i = 0; i < 5; i++){ setTimeout(() => console.log(i) }

¿Por qué el bucle con let devuelve 0,1,2,3,4 pero el bucle con var devuelve 5,5,5,5,5?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Esto se debe a la elevación. Declarar una variable con var en su ciclo for no limita su alcance solo a ese bloque de código como lo haría con let. Dado que su existencia se extiende más allá del bucle for, cuando la devolución de llamada setTimeout() evalúa el valor, obtiene el último valor en el que se configuró. (se establece en 5, por lo que el ciclo for se detiene)

 for (var val = 0; val < 5; val++) { setTimeout(() => console.log(i) } if (val === 5) { console.log('I can still see the value'); }

Puede ver el mismo comportamiento al usar let si ya ha declarado la variable antes de usarla en su ciclo for.

 let i; for (i = 0; i < 5; i++) { setTimeout(() => console.log(i) }

Ahora se comportaría de la misma manera que lo hizo el ciclo var for.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda