Skip to content
On this page

JS定时器可以精准计时吗

不行

  1. 计算机硬件没有原子钟,无法做到精准计时。
  2. 操作系统的计时函数本身就有少量偏差,由于 JS 的计时器最终调用的是操作系统的函数,所以也携带了这些偏差。
  3. 按照 W3C 的标准,浏览器实现计时器时,如果嵌套层级超过5层,最会带有4毫秒的最少事件,这样在计时时间少于4毫秒时会带来误差。
  4. 受事件循环的影响,计时器的回调函数只能在主线程空闲时运行,因此也有偏差。