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)
不积跬步无以至千里