Sobes.tech
Back to questions
Middle
1

Что такое debounce? Напиши функцию debounce без использования библиотек на vanilla JS

Companies where asked
ТранснефтьТранснефть

Answer from AI

sobes.tech AI

Debounce — это техника программирования, которая ограничивает частоту вызова функции. Если функция вызывается часто (например, при вводе текста или прокрутке), debounce гарантирует, что она выполнится только после того, как прошло определённое время с момента последнего вызова.

Это полезно для оптимизации производительности и предотвращения избыточных операций.

Пример функции debounce на vanilla JS:

function debounce(func, delay) {
  let timeoutId;
  return function(...args) {
    clearTimeout(timeoutId);
    timeoutId = setTimeout(() => {
      func.apply(this, args);
    }, delay);
  };
}

// Использование:
const handleResize = debounce(() => {
  console.log('Окно изменено');
}, 300);

window.addEventListener('resize', handleResize);

В этом примере handleResize будет вызвана не чаще, чем раз в 300 миллисекунд после последнего события resize.