JS有兩種定時器分别是setTimeout()和setInterval(),這兩個區别就是setTimeout()是一次性的定時器,而setInterval()是循環的定時器。
定時器的精度
js中的定時器精度并不準确,這是因為JS中的定時器僅僅是将執行的語句加入隊列,這樣在定時器之前的語句若是在循環或者有延遲的情況下,定時器也會相應的延後。
上面提到了js中的定時器精度不準确的原因,同樣的這也會導緻使用setTimeInterVal語句會卡頓,其不管語句是否執行完成,都會在時間點執行語句。
實際上大多數的場景中,隻是想要定時之後執行完語句再等待定時的觸發,完全可以使用setTimeOut搭配clearTimeout這樣在使用定時器之後進行消除再加一個循環,總和性能比單純的setTimeInterVal要好上不少。
可執行字符串形式語句
由于曆史原因,兩種定時器都支持eval的效果,可以執行字符串形式的語句。
若定時時間為0則放在隊列最後執行
如果将定時為0秒後執行,語句并不會立刻執行,而是将其放在隊列最後,等待所有語句執行完成之後,再立刻執行。
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!