内部使用setTimeout延迟1000ms输出数据,并使用递归实现循环
setInterval()
方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
timerFun();
function timerFun() {
let timer = setTimeout(function () {
console.log('setTimeout 实现 setInterval');
timerFun();
clearTimeout(timer);
}, 1000);
}
关于递归:
- 很多时候可以用递归代替循环,可以理解为递归是一种特殊的循环,但通常情况下不推荐这样做。
- 递归一般是在函数里面把函数自己给调用一遍,通过每次调用改变条件,来结束循环。
- 递归在数据格式一致,在数据层级未知的情况下,比普通的遍历更有优势。
- 递归在异步的时候,更容易理解,且更容易实现,因为可以在异步的回调里面,调用自己来实现每次都能拿到异步的结果再进行其他操作。
- 递归实现的快速排序比普通遍历实现的排序效率更好。