setTimeout()和setInterval()的区别 刺骨的言语ヽ痛彻心扉 2022-09-23 15:59 164阅读 0赞 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函数仍在执行时),第一次触发将被抛弃掉。
还没有评论,来说两句吧...