防抖与节流
2023-12-06
JavaScript

防抖

防抖,即两次执行间隔小于给定时间,则不执行

js
function 防抖(cb, delay = 200) {
  let timer
  return function () {
    timer && clearTimeout(timmer)
    timer = setTimeout(cb, delay)
  }
}

节流

节流,即按固定频率执行

js
function 节流(cb, delay = 200) {
  let flag = false
  return function () {
    if (!flag) { return }
    flag = false
    setInterval(() => {
      cb()
      flag = true
    }, delay)
  }
}