У меня был вопрос на собеседовании.Я просто не понимаю, почему это печатает 5 6 7 8 9 ...
let i = 0; while (i < 5) { setTimeout(() => { console.log(i++); }, 0); i++; }
i = 0
while
1, 2, 3, 4
5
setTimeout
i
console.log()
Это из-за функции setTimeout ().Даже если это задерживает 0 секунд.Это понизит его приоритет в процессоре.Все 5 действий внутри функций setTimeout будут выполняться после цикла while.Так как в конце его я 5. Таким образом, он регистрирует и увеличивает после этого ...