前端笔试题 节流防抖的含义及代码

节流 节流指的都是某个函数在一定时间间隔内只执行第一次回调。

const throttle = (cb, wait=3000) => {
  let timeId;
  return (...args) => {
    if( timeId ) return;
    timeId = setTimeout(() => {
      cb.apply(this, args);
      timeId = undefined;
    }, wait)
  }
}

防抖 无视短时间内重复回调,只执行末次回调。

function debounce(cb, wait = 3000) {
  let timer = null

  return (...args) => {
      if (timer) clearTimeout(timer)

      timer = setTimeout(() => {
        timer = null;
        cb.apply(this, args)
      }, wait)
  }
}

节流防抖
前端节流(throttle)和防抖动(debounce) - (jianshu.com)

你可能感兴趣的:(前端笔试题 节流防抖的含义及代码)