定时器方法 setTimeout 与 setInterval

在学习JavaScript的时候碰到了需要使用定时器的时候,常把setTimeout 与 setInterval 搞混,特此记录
setTimeout()
setTimeout() 用来控制在指定毫秒之后运行函数

setTimeout(
   function(){ 
      alert("123"); 
    }, 1000
 );//在1000ms之后弹出123窗口

如果延迟执行的是函数,则将函数名作为第一个参数

		function f() {
		  console.log(2);
		}
setTimeout(f, 1000);

他还可以有更多的参数,会依次传入回调函数

setTimeout(function (a,b) {
  console.log(a + b);
}, 1000, 1, 1);//后两个参数会传入回调函数,输出2,

setTimeout()可以使用clearTimeout()来取消后续函数操作的执行,clearTimeout() 方法的参数必须是由 setTimeout() 返回的 ID 值。

  var a = setTimeout(
		 function(){ 
			alert("123"); 
			 }, 1000
		 );
   clearTimeout(a);

setInterval()
setInterval()用来在指定时间间隔循环执行函数操作。

	setInterval(
	  function(){
	    console.log("1”);
	    },1000
	);//每间隔1000ms就在控制台输出1

和setTimeout一样,setInterval也可以有多个参数,传入回调函数中

setInterval指定的是“开始执行”之间的间隔,并不考虑每次任务执行本身所消耗的时间。因此实际上,两次执行之间的间隔会小于指定的时间。比如,setInterval指定每 100ms 执行一次,每次执行需要 5ms,那么第一次执行结束后95毫秒,第二次执行就会开始。如果某次执行耗时特别长,比如需要105毫秒,那么它结束后,下一次执行就会立即开始。

setInterval()可以使用clearInterval()来取消循环的执行,一般会用到判断条件中。

猜你喜欢

转载自blog.csdn.net/e1172090224/article/details/83578883