js创建定时器(js中的两种定时器setTimeout)

setTimeout()和setInterval()

JS有两种定时器分别是setTimeout()和setInterval(),这两个区别就是setTimeout()是一次性的定时器,而setInterval()是循环的定时器。

js创建定时器(js中的两种定时器setTimeout)(1)

js创建定时器(js中的两种定时器setTimeout)(2)

js创建定时器(js中的两种定时器setTimeout)(3)

定时器的精度

js中的定时器精度并不准确,这是因为JS中的定时器仅仅是将执行的语句加入队列,这样在定时器之前的语句若是在循环或者有延迟的情况下,定时器也会相应的延后。

对于性能的消耗

上面提到了js中的定时器精度不准确的原因,同样的这也会导致使用setTimeInterVal语句会卡顿,其不管语句是否执行完成,都会在时间点执行语句。

实际上大多数的场景中,只是想要定时之后执行完语句再等待定时的触发,完全可以使用setTimeOut搭配clearTimeout这样在使用定时器之后进行消除再加一个循环,总和性能比单纯的setTimeInterVal要好上不少。

可执行字符串形式语句

由于历史原因,两种定时器都支持eval的效果,可以执行字符串形式的语句。

js创建定时器(js中的两种定时器setTimeout)(4)

若定时时间为0则放在队列最后执行

如果将定时为0秒后执行,语句并不会立刻执行,而是将其放在队列最后,等待所有语句执行完成之后,再立刻执行。

js创建定时器(js中的两种定时器setTimeout)(5)


,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页