高频面试题之手写防抖函数
jeckson
共 494字,需浏览 1分钟
· 2021-08-02
手写防抖函数
函数防抖是指在事件被触发 n 秒后再执行回调,如果在这 n 秒内事件又被触发,则重新计时。这可以使用在一些点击请求的事件上,避免因为用户的多次点击向后端发送多次请求。
防抖就如坐电梯,当第一个人进入电梯,如果5秒内有人继续进入,门就会再次等待5秒,以此下去,如果超过5秒,他就关门了,就上去啦。
// 函数防抖的实现
function debounce(fn, wait) {
let timer = null;
return function() {
let context = this,args = arguments;
// 如果此时存在定时器的话,则取消之前的定时器重新记时
if (timer) {
clearTimeout(timer);
timer = null;
}
// 设置定时器,使事件间隔指定事件后执行
timer = setTimeout(() => {
fn.apply(context, args);
}, wait);
};
}
评论
手写前端高频面试题
建议优先掌握:instanceof (考察对原型链的理解)new (对创建对象实例过程的理解)call&apply&bind (对this指向的理解)手写promise (对异步的理解)手写原生ajax (对http请求方式的理解,重点是get和post请求)1...
罗秦
0
MySQL 高频面试题!
在下方公众号后台回复:面试手册,可获取杰哥汇总的 3 份面试 PDF 手册。MySQL 索引使用什么数据结构?为什么用 B+做索引?使用B+树。这个问题,可以在脑子里面先思考一下,如果让你来设计数据库的索引,你会怎么设...
杰哥的IT之旅
0