JS setTimeout & setInterval & requestAnimationFrame
JavaScript 定时调度 三 大核心 API
- setTimeout:延迟执行一次,推荐使用,可灵活控制调度
- setInterval:周期重复执行,不推荐使用,存在设计缺陷
- requestAnimationFrame:与屏幕刷新同步,动画场景首选
最佳实践:用递归 setTimeout 替代 setInterval,保证间隔准确、支持动态调整。
零延迟调度:setTimeout(fn, 0) 不是立即执行,而是当前同步任务完成后尽快执行,可用于拆分长任务。
关键提醒:定时器回调中的 this 指向全局对象;务必清理不再需要的定时器防止内存泄漏。




