定时器

Interval 间隔

JavaScript 提供定时执行代码的功能,叫做定时器。它们向任务队列添加定时任务。

setInterval() setTimeout()

setTimeout()

写法:
setTimeout(  fun  ||  code ,time)

举个栗子:

  setTimeout(“console.log(1)”,1000)
  setTimeout(function(){console.log(1)},1000)

setTimeout() 非匿名函数可以直接在setTimeout中传入参数的名字

 function fn(){
    console.log(1)
 }
 setTimeout(fn,100)

setInterval()

用法与setTimeout完全一致,区别仅仅在于setInterval指定某个任务每隔一段时间就执行一次,也就是无限次的定时执行。

clearTimeout() clearInterval()

 var timer1 = setTimeout(fn, 1000);
 var timer2 = setInterval(fn, 1000);
 clearTimeout(timer1);
 clearInterval(timer2);

运行机制

 setTimeout(function () {
   console.log(1);
  }, 0);
 console.log(2);

运行机制

 setInterval(function(){
   console.log(new Date());
 },500)

运行机制

js读取到setTimeout和setInterval会将这两种函数放到任务队列。直到所有的同步任务执行完毕之后才会执行任务队列里的任务。所以,这两种方法的执行时间我们无法保证。

运行机制

 setTimeout(function timer(){
    console.log(new Date());
    setTimeout(timer,500)
 },500)

你可能感兴趣的:(定时器)