Урок 18 · JavaScript
setTimeout и setInterval и как их остановить
Таймер — это номер, который нужно сохранить. Иначе обратный отсчёт нельзя выключить.
Почему это следующий шаг
Фильтр работает сразу. Таймер нужен там, где действие происходит само: подсказка, секундомер, пауза.
Как сделать
setTimeout выполняет функцию один раз. setInterval — повторно. clearInterval останавливает повтор. Не создавай новый интервал на каждый клик, не остановив старый: секунды побегут в несколько раз быстрее. Для интерфейса обновляй текст раз в секунду, а не рисуй всю страницу без нужды. Когда элемент исчезает, таймер тоже останови.
let left = 5;
const timer = setInterval(() => {
left -= 1;
label.textContent = String(left);
if (left <= 0) clearInterval(timer);
}, 1000);Что проверить
- Повторный старт не ускоряет отсчёт.
- На нуле интервал очищен.
- Уход со сценария не оставляет бегущий таймер в консоли.
Попробуй
Сделай отсчёт от 10 до 0 с кнопками старт и стоп.