setTimeout 和setInterval从字面上应该是能够知道其大意的。timeout:延时;interval:间隔;编程
二者的区别就像是它们本身的英文解释同样:setTimeout是延时执行,而且它只执行一次(ps:固然也有方法让它无限执行);setInterval是间隔式的执行,每隔多少时间就执行一次。它会不断地循环执行。举个小例子:编程语言
上面说到setTimeout能够实现循环执行,方法也很简单,就是用一个递归就能够了。(ps:递归能够理解为在一个函数里面再去调用它本身)函数
那么实现原理就是setTimeout在一个函数内使用,而且它的function函数参数传递的就是它所在的函数。通常状况下递归调用是须要有一个结束的条件的,否则就变成了死循环。在学习
其余编程语言中这是咱们不想要的结果,可是把这个死循环放在咱们的这个setTimeout里面来就刚恰好能够实现间隔性的执行函数。不知道我有没有说明白,没有明白的话,看代码:又举个小例子(ps:这个例子是在某一本图书中看到的,感受还不错的样子,粘贴过来供你们学习)blog
script代码块递归
body代码块ip
好啦,这二者的分享就到这里了。因为本人才疏学浅,有些地方表达不太准确或者有误但愿你们指出,共同窗习。io