Por ejemplo,
for (var i = 0; i < 3; i++) { setTimeout(function() { console.log(i) }, 500); let j = i; setTimeout(function() { console.log(j); }, 1000) }El resultado de la lupa del bucle de eventos: 3 0 3 1 3 2
Pero en resultado jsfiddle : 3 3 3 0 1 2
No sé qué causa los dos resultados diferentes y cuál sería el correcto.