防抖和节流
一、防抖(debounce)
function debounce(callback, delay) {
let timer = null;
return (...args) => {
clearTimeout(timer); // 必须先清除已存在的宏任务,否则重复触发时回调有可能被执行
timer = setTimeout(() => {
callback(...args)
}, delay)
}
}二、节流(throttle)
三、可视化演示
Last updated