Встречается на собеседованиях • сегодня
В чем разница между requestAnimationFrame и setTimeout в стеке задач
requestAnimationFrame и setTimeout работают в разных частях цикла событий:
- requestAnimationFrame:
- Вызывается перед ререндерингом страницы (в фазе
BeforePaint). - Оптимизирован для анимаций, синхронизируется с частотой обновления экрана (обычно 60fps).
- Браузер может объединять вызовы или пропускать кадры для оптимизации.
- Вызывается перед ререндерингом страницы (в фазе
js
function animate() {
element.style.left = `${pos++}px`;
requestAnimationFrame(animate);
}
requestAnimationFrame(animate);- setTimeout:
- Попадает в общую очередь макрозадач.
- Нет гарантии точного времени выполнения (может задерживаться из-за других задач).
- Минимальная задержка ≈4мс в современных браузерах.
js
function move() {
element.style.left = `${pos++}px`;
setTimeout(move, 16); // ~60fps
}
setTimeout(move, 16);Ключевое отличие: rAF - для визуальных изменений, setTimeout - для общего отложенного кода. Браузер может приостановить rAF при скрытой вкладке.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы