这个也是面试的时候常常考的哦!笔者如今简单的说一下(是真的简单说一下)。。。 😒html
防抖: 触发一个事件,会把它延迟到n秒后执行。至于为何叫防抖,本人不清楚。。。 😳 查看例子git
function debounce(fn,time){ var timer = null; return function(){ clearTimeout(timer); //重点,要不断清除上次的定时器 timer = setTimeout(()=>{ console.log('防抖') fn.apply(this,arguments) },time); } }
节流: 触发一个事件,它只会在n秒内执行一次。查看例子github
function throttle(fn,time){ var bool = true; return function(){ if(!bool) return; bool = !bool; fn.apply(this,arguments); console.log('节流'); setTimeout(function(){ bool = !bool; },time); } }
防抖和节流虽然在实现上不一样,但均可以减小高频事件的次数,达到一种优化的效果。 👍
若是你想更多的了解或者参与讨论,请看这里web