【前端怪谈】为什么要用setTimeout模拟setInterval

文章目录

  • 前言
  • 一、setInterval存在的问题
    • 1.问题复现
    • 2.问题分析
  • 二、setInterval缺点及setTimeout
    • 1.setInterval缺点
    • 2.为什么setTimeout能取代
    • setTimeout实现setInterval
  • 总结


前言

大家都知道,setTimeout是延迟执行函数,而setInterval就像一个定时器,每间隔一定时间就触发一次回调。

今日面试中,面试官问了我一个问题,为什么要用setTimeout去实现setInterval呢?

【前端怪谈】为什么要用setTimeout模拟setInterval_第1张图片
再一次被自己菜哭,面试完成后,赶紧去查了查为什么,下面让我们一起看一看setInterval会导致些什么问题吧!

一、setInterval存在的问题

1.问题复现

让我们先来看下面这一串代码:

      let startTime = new Date().getTime();
      let count = 0;
      setInterval(function () {
   
        count++;
        console.log(
          `与原设定的间隔时差了${
     
            new Date().getTime() - (startTime + count * 1000)
          }毫秒`
        )

你可能感兴趣的:(技术文章,前端怪谈,js,前端)