setTimeout()和setInterval()的区别

来源:互联网 发布:非电气化铁路 知乎 编辑:程序博客网 时间:2024/06/14 01:17
  setTimeout(function(){
    /* Some long block of code... */
    setTimeout(arguments.callee, 10);
  }, 10);
  
  setInterval(function(){
    /* Some long block of code... */

  }, 10);

      JavaScript是单线程的。

      setTimeout指的是:间隔一段时间后执行,只执行一次,但可通过递归实现多次调用。当回调函数第二次被触发时(此时setTimeout函数仍在执行时),第一次触发将被抛弃掉。

      setInterval是指:每隔一段时间执行,执行多次。当setInterval回调函数第二次被触发时,可能把所有的setInterval回调函数都排在执行队列的后面,代码块执行完之后,结果便会是一大串的setInterval回调函数等待执行,并且这些函数之间没有间隔,直到全部完成,这意味着两次setInterval回调函数之间的时间间隔会被牺牲掉(缩减)。




       当回调函数第二次被触发时(此时setTimeout函数仍在执行时),第一次触发将被抛弃掉。
0 0
原创粉丝点击