前言
在前端实际开发中,有关JS原生的节流和防抖处理也是很重要的点,关于底层和原理的掌握使用,尤其是在性能优化方面甚为重要。作为前端开发的进阶内容,在实际开发过程中节流和防抖通常都是项目优化的必要手段,而且也是非常常用的优化手段,因为在前端程序中防止用户短时间内快而高频地多次操作触发动作执行,最常用的就是页面提交按钮,为了防止用户多次点击重复提交触发表单多次提交的问题,还有就是为了防止用户在拖动滑动条的时候,多次触发加载更多等情况。所以在JS中节流与防抖的使用也是比较常用的知识点,而且在前端求职面试的时候二者也是必考知识点,可以说非常重要,那么本文就来做一下总结,方便查阅使用。
闭包
由于在JS中的节流与防抖都是属于闭包的应用范畴,所以想要理解防抖和节流,首先要理解闭包。
闭包:一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure)。也就是说,闭包让你可以在一个内层函数中访问到其外层函数的作用域。在 JavaScript 中,每当创建一个函数,闭包就会在函数创建的同时被创建出来。
通俗的说,闭包