防抖:在一定时间内再次触发同一事件,会清空上次事件重新开始,如果制定的时间内没有再次触发,那么这个事件才会执行。
节流:在一定的时间同一事件只会触发一次,只有超过了这个时间才会再次触发。
//防抖
const debounce=(fn,delay)=>{
let task = null;
return function(){
if(task){
clearTimeout(task);
}
task = setTimeout(fn.apply(this,arguments),delay);
}
}
//节流
const throttle=(fn,delay)=>{
let task = null;
return function(){
if(!task){
task = setTimeout(function(){
task = null;
fn.apply(this,arguments)
},delay)
}
}
}
參考:https://juejin.im/post/6884920571386134535