每天整一个面试题,大家一起进步,加油加油!!!
1.写一个 mySetInterVal(fn, a, b),每次间隔 a,a+b,a+2b,.......,a+nb的时间,然后写一个 myClear,停止上面的 mySetInterVal;
解析:该题的思路就是每一次在定时器中重启定时器并且在时间每一次都加b,并且要把定时器返回回来,可以作为myClear的参数。
具体的执行代码如下:
var mySetInterVal = function(fn,a,b){
var timer = null;
var settimer = function(fn,a,b){
timer = setTimeout(()=>{
fn();
settimer(fn,a+b,b);
},a);
}
settimer(fn,a,b);
return timer;
}
var timer = mySetInterVal(()=>{console.log('timer')},1000,1000);
var myClear = function (timer) {
timer && clearTimeout(timer);
}