js 手写防抖节流
1、防抖:避免事件的频繁调用,即当事件停止一段时间后再促发。
应用:浏览器resize、input校验、button点击
const myDebounce = (fn, wait){ let timer = null; return (...args) => { if (timer) clearTimeout(timer); timer = setTimeout(() => { fn(...args); }, wait); } }
2、节流:控制事件调用的频率,即一段时间调用一次。
应用:scroll事件
const myThrottle=(fn,wait)=>{ let timer=null; setTimeout(()=>{ if(timer) return; fn(); timer=null; },wait); }