Какие знаешь таймеры

«Какие знаешь таймеры» — вопрос из категории JavaScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В JavaScript есть несколько способов работы с таймерами:

  1. setTimeout - выполняет функцию один раз через указанное время:
setTimeout(() => {
  console.log('Выполнится через 1 секунду');
}, 1000);
  1. setInterval - повторяет выполнение функции с указанным интервалом:
const interval = setInterval(() => {
  console.log('Повторяется каждую секунду');
}, 1000);

// Для остановки:
clearInterval(interval);
  1. requestAnimationFrame - оптимизирован для анимаций, синхронизируется с частотой обновления экрана:
function animate() {
  // Анимация
  requestAnimationFrame(animate);
}
animate();

Важные нюансы:

  • Таймеры в браузере могут задерживаться из-за вкладки в фоновом режиме или нагрузки процессора
  • Минимальная задержка для setTimeout/setInterval - 4мс (в соответствии со спецификацией)
  • Для точных интервалов лучше использовать performance.now() и корректировать время вручную