Используйте Self Invoked Function для создания замыкания и setTimeout для задержки вывода.
(function () {
let countdown = 5;
for (; countdown > 0; countdown--) {
setTimeout(() => console.log(countdown), 1000);
}
})();
Не понимаю логики... Почему вначале проходит циклом и только в конце выводится сразу пять 0
countdownбудет уже0т.к. цикл завершится. В задаче уже описан вариант решения данной проблемы - создать замыкание, чтобы оставить только копиюcountdownна текущий момент, а не само значение. Смотрите дубликаты, там описаны все варианты решений. – Alex Krass Jun 16 '20 at 08:54