JS:手写防抖和节流(*****五颗星)

1.防抖

防抖:用户触发时间过于频繁,只要最后一次事件的操作,实现原理为设置一个定时器,约定在xx毫秒后再触发事件处理,每次触发事件都会重新设置计时器,直到xx毫秒内无第二次操作。

1.封装防抖代码如下:

     //封装的防抖
        function debounce(fn,delay){
            let t=null
            return function(){
                if(t!==null){
                    clearTimeout(t)
                }
                t=setTimeout(()=>{
                    fn.call(this)
                },delay)
            }
        }

2.防抖示例:

1.search搜索联想,用户在不断输入值时,用防抖来节约请求资源

<input type="text">
    <script>
        let inp=document.querySelector("input")
        inp.oninput=debounce(function(){
            console.log(this.value)
        },500)
		//封装的防抖
        function debounce(fn,delay){
            let t=null
            return function(){
                if(t!==null){
                    clearTimeout(t)
                }
                t=setTimeout(()=>{
                    fn.call(this)
                },delay)
            }
        }
    </script>

2.window触发resize的时候,不断的调整浏览器窗口大小会不断的触发这个事件,用防抖来让其只触发一次

<script>
        window.onresize=debounce(function(){
            let windowSize={
                width:this.innerWidth,
                height:this.innerHeight
            }
            console.log(windowSize)
        },500)
		//封装的防抖
        function debounce(fn,delay){
            let t=null
            return function(){
                i

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

前端面试题 文章被收录于专栏

前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理

全部评论
还应该得到arguments,传入fn.call中,不然获取不到事件event
点赞 回复 分享
发布于 2023-04-25 19:42 重庆

相关推荐

10-09 17:17
已编辑
门头沟学院 Java
活泼的代码渣渣在泡池...:同学你好,我也是学院本,后天要面这个亚信科技,是实习,请问问题都啥样呀,我项目就做了网上的,这是第一次面试
投递多益网络等公司10个岗位
点赞 评论 收藏
分享
08-24 14:45
河南大学 Java
如图所示,我在大二升大三的暑假拿到了美团的日常实习,这一路走来很不容易,所以想分享一下经验,也算是传承,因为一路走来帮助我的人也有很多。第一😇(学习路线),看黑马的视频只是一个入门,我是一直看完了springcloud。第二😇(项目),项目的话没有好坏,只有新奇与陈旧,新的项目用的人少的往往能达到让面试官眼前一亮的效果,所以没有固定的推荐,但是大家可以努力去多做几个项目,这样技术你都学会了,之后可以根据新的项目进行改造。第三😇(八股文),这个真就是跟着网站上背就行了&nbsp;一定要自己整理一套自己的八股笔记,有自己的思考与理解,我理解之后即使几个月不看也能顺滑的说出来。第四😇(面试注意),面试的时候要体现自己的思考,如果你能说出来一整个问题的逻辑那很好,但是不要着急,先说百分之八十,后百分之二十说是自己思考出来的。第五😇(当你所有的都融会贯通),八股项目相结合,八股与八股相串联,问到你一个简单的问题可以扩展延伸让面试官措不及防,被你控制,这样面试官能够问你不会的问题的概率也会大大下降。等待与努力的过程是无比的焦虑与忐忑,当字节三面挂与快手二面挂的时候我已经开始摆烂了,因为双非的机会真的不多,都没把握到,最后还是美团收留了我,任何人的路径都是不可复制的,任何人的经历也是独一无二的,不要受别人影响,加油做自己。接受大家积极发问,也可以私信我哦。
永泽one:美团官网投的嘛佬,根本约面不了
大厂面试问八股多还是项目...
点赞 评论 收藏
分享
评论
4
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务