关于定时器的两个小疑问

来源:16-8 手写防抖 debounce

Harby_C

2020-04-08

老师你好,关于这里的定时器的两个小疑问
1.就算在函数执行里面设置了timer=null,console.log(timer)依然是一个非null的值,所以设置timer=null,其实是不起作用的(当然从声明变量避免变量污染角度来说也是可以这样做的,但这样的话平时我们声明的变量都要手动释放吗,比如input1就没设置为null)。
2.timer其实可以不用判断存不存在,直接使用clearTimeout(timer),毕竟只有第一次进来的时候timer不存在
所以直接这样行不行:
let timer = null;
input1.addEventListener(‘input’, () => {
clearTimeout(timer);
timer = setTimeout(() => {
// …
}, 1000);
});

写回答

1回答

双越

2020-04-08

第一,timer 声明时,可以不赋值为 null ,没关系。

第二,不判断,直接 clearTimeout 也可以的,没问题。

0
0

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程