防抖(debounce)
函数防抖是指当一个函数在短时间内频繁调用时,让函数延迟一段时间后执行一次。例如,当用户频繁点击按钮时,不需要每次点击都响应事件,这样非常消耗性能,这时我们可以设置函数防抖。下面让我们实现防抖函数:
// 防抖动函数function debounce(fn,wait=50,immediate) {let timer;return function() {if(immediate) {fn.apply(this,arguments)}if(timer) clearTimeout(timer)timer = setTimeout(()=> {fn.apply(this,arguments)},wait)}}
节流(throttle)
节流是指在规定的时间内执行固定次数代码。
//节流函数function throttle(fn, wait) {let prev = new Date();return function() {const args = arguments;const now = new Date();if (now - prev > wait) {fn.apply(this, args);prev = new Date();}}
