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最大的优势是由系统来决定回调函数的执行时机,它能保证回调函数在屏幕每一次的刷新间隔中只被执行一次,这样就不会引起丢帧现象,常用于动画场景。