说说关于防抖和节流
防抖
- 防抖概念:当事件频繁触发时,规定时间内不再触发再执行事件
function debounce(func,wait){
let rusult,timeout;
return function(){
let args= [...arguments];
clearTimeout(timeout)
timeout = setTimeout(()=>{
result = func.apply(this,args)
},wait)
}
}
节流
- 节流概念:事件一直持续进行中,但只在规定的时间内执行一次
function throttle(func, wait) {
let preTime = 0 //上一次的时间
return function () {
let args = [...arguments] //获取事件参数
let now = +new Date() //时间戳 精准到秒
if (now - preTime > wait) { //点击第二次的时候判断时间有没有到
func.apply(this, args)
preTime = now
}
}
}