Hi FE !
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
  • s009-手写函数防抖★★

s009-手写函数防抖★★

函数防抖,使用最多的场景是,打字搜索时候,在输入最后一次多少秒之后在触发,避免了频繁请求

function debounce(fn,delay = 500) {
  let timer = null;
  return function() {
    if(timer) {
      clearTimeout(timer)
    }
    timer = setTimeout(() => {
        fn.apply(this,arguments)
        timer = null;
    },delay)
  }
}

使用

Input1.addEventListener('keyup',debounce(function(e) {
    console.log(e)
},200))

立即执行版函数防抖

function debounce(fn,wait) {
  let timer = null
  return function(){
    let context = this,args = arguments
    if(timer) {
      clearTimeout(timer)
    }
    let startNow = !timer
    timer = setTimeout(() =>{
        timer = null
    },wait)
    if(startNow) {
        fn.apply(context,args)
    }
  }
}
Edit this page
最近更新: 2025/6/27 02:24
Contributors: qdleader
qdleader
本站总访问量 129823次 | 本站访客数 12人