javascript定时器详解

定时器是javascript的重点部分,在以后的很多实战项目里都会用到。

在javascript中,与定时器有关的方法是:

setInterval、clearInterval

以及

setTimeout、clearTimeout

这些方法都是定义在window对象上面的,因此我们写window.setInterval和解setInterval的意思是一样的,前面的window可以省略掉。

setInterval这个定时器的功能是每过一段时间,就把我们想要执行的函数放到js的执行队列中等待执行。因为执行队列不一定是空的,需要等执行队列中的所有任务都执行完之后才会执行我们的函数,因此这个函数执行的时间也会有细微的差别。

这个方法的语法是:

window.setInterval(function () {}, 1000);

第一个参数是我们要执行的函数,第二个参数是每过多长时间把函数放入执行队列。

这里要说明的是,第一个参数的那个函数,不能带有参数。其次,里面的this默认指向window,因为前面提到过,谁调用方法,方法里面的this就指向谁,setInterval其实前面省略了window,因此里面的this默认一定指向window,不论这个setInterval是否是一个对象的方法。

setInterval其实很消耗内存,这个定时器一旦执行,就不会终止,因此需要我们的内核一直监听这个函数。

这个时候我们就需要一个方法来清除定时器了:clearInterval。

定时器其实会返回一个标记,我们可以通过定时器的这个标记来清除掉相对应的定时器。



1 var i = 0; 2 var timer = setInterval(function () { 3 i++; 4 if(i === 10) { 5 clearInterval(timer); 6 } 7 }, 100);

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxszj.html