setTimeout()和setInterval()的用法及区别

setInterval 方法表示每间隔一段时间执行一次函数,会一直执行下去,除非手动 clearInterval 来停止。

1 var i = 10;
2         var timer = setInterval(() => {
3             console.log(i--) //每次减1
4             if(i === 0) {
5                 clearInterval(timer); //取消
6             }
7         }, 1000);
setTimeout 表示在延迟多长时间后执行函数,只会执行一次。像个延时器。
 
1 setTimeout(() => {
2            alert('hhh') 
3         }, 5000);

 setInterval 方法适合做循环显示效果,比如倒计时功能,setTimeout适合做css动画延迟渐变效果

有的人喜欢将setTimeout包含于被执行函数中,然后在函数外再次使用setTimeout来达到定时执行的目的 这样,函数外的setTimeout在执行函数时再次触发setTimeout从而形成周而复始的定时效果

function say(){
//something
setTimeout(say,200);
}
setTimeout(say,200)
不积跬步无以至千里
原文地址:https://www.cnblogs.com/lyt0207/p/11820980.html