Встречается на собеседованиях • сегодня

В чем разница между Throttling и Debouncing

Throttling и Debouncing — оба ограничивают частоту вызова функции, но работают по-разному.

Throttling гарантирует, что функция будет вызываться не чаще, чем раз в указанный интервал времени. Например, при скролле:

javascript
function throttle(func, delay) {
  let lastCall = 0;
  return function(...args) {
    const now = new Date().getTime();
    if (now - lastCall < delay) return;
    lastCall = now;
    return func(...args);
  };
}

Debouncing откладывает вызов функции до момента, когда с момента последнего события пройдет указанный интервал. Например, для поиска при вводе:

javascript
function debounce(func, delay) {
  let timer;
  return function(...args) {
    clearTimeout(timer);
    timer = setTimeout(() => func(...args), delay);
  };
}

Разница:

  • Throttling — вызов через равные промежутки
  • Debouncing — вызов только после паузы в событиях
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы