Debounce trì hoãn execution cho đến khi input ngừng, tránh gọi API quá nhiều lần.
js
function debounce(fn, delay) {
let timer;
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => fn(...args), delay);
};
}Ứng dụng: search input (gõ xong 300ms mới gọi API), resize handler, auto-save.
Phỏng vấn thường hỏi viết tay để kiểm tra hiểu closure và timer.