Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: debounce, timeout

Что такое debounce?

Вопрос проверяет умение управлять частотой выполнения функций при частых событиях, например вводе текста или скролле.

Короткий ответ

debounce — это техника, при которой функция выполняется только спустя заданное время после последнего вызова. Если за это время функция вызывается снова, таймер сбрасывается. В итоге выполнение происходит один раз, когда события “затихли”. Это помогает уменьшить количество лишних операций.

Длинный ответ

Определение

Debounce — это ограничение частоты вызова функции так, чтобы она выполнялась только после паузы в событиях.

Как работает debounce

Сначала опишем идею словами: функция “ждёт”, пока события перестанут происходить.

  1. Происходит вызов функции

  2. Запускается таймер

  3. Если вызов повторяется до истечения таймера:

    • таймер сбрасывается

  4. Функция выполняется только после паузы

Простой пример

function debounce(fn, delay) {
  let timer;

  return function (...args) {
    clearTimeout(timer);
    timer = setTimeout(() => {
      fn.apply(this, args);
    }, delay);
  };
}

Типичные кейсы использования

  1. Поиск по мере ввода текста

  2. Валидация формы

  3. Автосохранение

  4. Запросы к API при изменении фильтров

Практический нюанс

Debounce почти всегда используется там, где важно последнее действие, а не каждое промежуточное.

Вывод

Debounce позволяет вызывать функцию только после того, как поток событий прекратился, снижая нагрузку и количество лишних операций.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#debounce

#timeout

Подпишись на React Developer в телеграм