前端面试题整理之JS篇

整理关于前端面试中CSS相关的面试题

防抖、节流

防抖,防止某事件频繁触发。应用场景:

  • 用户在搜索框输入字符,只需要最后一次输入的结果然后发送请求
  • 校验用户在表单输入的字符
  • 窗口 resize

节流,控制某事件触发的时间间隔,如 1s 触发一次。应用场景:

  • 上拉加载,下拉加载等
  • 表单的重复提交
  • 搜索框的搜索联想
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
export const debounce = (fn: Function, delay: number) => {
let timer = 0;

return (...args: any) => {
clearTimeout(timer);
timer = setTimeout(() => {
fn(...args);
}, delay);
};
};

export const throttle = (fn: Function, delay: number) => {
let timer = 0;

return (...args: any) => {
if (timer) {
return;
}
timer = setTimeout(() => {
fn(...args);
timer = 0;
}, delay);
};
};