防抖 节流
防抖或是节流:限制函数的执行次数
- 防抖:通过setTimeout的方式,在一定的时间间隔内,将多次触发变成一次触发;
- 节流:减少一段时间的触发频率;
防抖(debounce)
//立即执行防抖函数
function debounce(fn, duration) {
let t = null
return function() {
if(!t) {
fn.apply(this, arguments)
t = setTimeout(() => {
t = null
}, duration || 2000)
}
}
}
//不立即执行防抖函数
function debounce(fn, duration) {
let t = null
return function() {
if(t) {
clearTimeout(t)
}
t = setTimeout(() => {
fn.apply(this, arguments)
}, duration || 2000)
}
}节流(throttle)
function throttle(fn, delay) {
let begin = 0
delay = delay || 1000
return function() {
let end = new Date().getTime()
if(end - begin > delay) {
begin = end
fn.apply(this, arguments)
}
}
}
#前端##学习路径#
查看14道真题和解析
