FEATURED · 精选文章

算法练习day3-备战2027届秋招

发布时间 / 2026/8/6 11:51:07
来源 / 创域科博编辑部
栏目 / 资讯中心
算法练习day3-备战2027届秋招 1、节流/** * desc 函数节流 * param {Function} fn * param {Number} wait * returns {Function} */ function throttle(fn, wait) { let context, args let previous 0 return function () { let now Date.now() context this args arguments if (now - previous wait) { fn.apply(context, agrs) previous now } } }2、防抖/** * desc 函数防抖 * param {Function} func * param {number} wait * param {boolean} immediate * return {*} */ function debounce(fn, wait, immediate) { let timeout return function (...args) { let context this if (timeout) clearTimeout(timeout) // 立即执行需要两个条件一是immediate为true二是timeout未被赋值或被置为null if (immediate) { /** * 如果定时器不存在则立即执行并设置一个定时器wait毫秒后将定时器置为null * 这样确保立即执行后wait毫秒内不会被再次触发 */ let callNow !timeout timeout setTimeout(() { timeout null }, wait) if (callNow) { fn.apply(context, args) } } else { // 如果immediate为false则函数wait毫秒后执行 timeout setTimeout(() { /** * args是一个类数组对象所以使用fn.apply * 也可写作fn.call(context, ...args) */ fn.apply(context, args) }, wait) } } }
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻