前端/移动开发面试题更新 2026-08-05

请说明如何用 JavaScript 实现精确计时,并解释为什么 setInterval(fn, 1000) 不够准确以及如何通过时间戳同步来校准。

上海得物信息集团有限公司前端/移动开发互联网/IT编码实现问题拆解技术原理JavaScript

考察说明

考察对 JavaScript 定时器精度限制的理解及时间戳校准方案的设计能力

回答思路

  1. 指出 setInterval 受事件循环阻塞、节流和后台标签页影响导致漂移
  2. 说明基于 Date.now() 或 performance.now() 计算目标执行时间并补偿间隔的校准思路
  3. 讨论使用 setTimeout 递归替代 setInterval 以避免任务堆积
  4. 考虑休眠、系统时间调整等边界场景的处理