What is Debouncing in JavaScript?

Description:

Debouncing delays function execution to optimize performance.

Explanation:

Debouncing is useful for limiting high-frequency events like resizing or typing.

Example:

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

const search = debounce(() => console.log("Searching..."), 300);
search();