</> Praktum

Главная / JavaScript / Таймер

Урок 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 с кнопками старт и стоп.