1.setInterval ,按照指定間隔后把回調函數加入任務隊列,js會逐個執行,並且會一直執行。
例如: var timer = setInterval( ()=> {alert("hi");},1000)
2.setTimeout,在指定的毫秒數后調用函數或計算表達式。
例如: var timer = setTimeout( ()=> {alert("hi");},1000)
setTimeout()在載入后延遲指定時間去執行一次表達式,只是一次。
setInterval()它從載入后,每隔指定的時間就執行一次表達式
所以要讓一段代碼, 某個函數以固定頻率重復執行應該使用setInterval()函數
如果讓一段代碼, 某個函數在指定延遲后僅僅執行一次應該使用setTimeout()
3.requestAnimationFrame,與setTimeout相比requestAnimationFrame最大的優勢是由系統來決定回調函數的執行時機,它能保證回調函數在屏幕每一次的刷新間隔中只被執行一次,這樣就不會引起丟幀現象,常用於動畫場景。