這個也是面試的時候常常考的哦!筆者如今簡單的說一下(是真的簡單說一下)。。。 😒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