setTimeout() 和 setInterval() 的区别

setTimeout() 和 setInterval() 的区别

在前端开发中,我们经常需要使用到 JavaScript 的定时器函数来延迟执行或周期性地执行某些操作。setTimeout() 和 setInterval() 是两个常用的定时器函数,它们都可以帮助我们实现这个功能,但是它们之间还是有一些区别的。

setTimeout()

setTimeout() 函数是一个在指定时间后执行一次的定时器函数。它接受两个参数:第一个参数是要执行的函数,第二个参数是延迟的毫秒数。具体来说,如果我们想要在 1 秒钟后执行某个函数,那么我们可以这样写:

--------------------- -
  ------------------- ---------
-- ------

在这个例子中,setTimeout() 函数会等待 1000 毫秒(也就是 1 秒钟)后,执行 console.log() 函数并输出 "Hello, world!"。

setInterval()

setInterval() 函数也是一个定时器函数,不同的是它会以固定的时间间隔重复执行某个函数。它也接受两个参数:第一个参数是要执行的函数,第二个参数是每次执行的时间间隔,单位是毫秒。具体来说,如果我们想要每隔 1 秒钟输出一次 "Hello, world!",那么我们可以这样写:

---------------------- -
  ------------------- ---------
-- ------

在这个例子中,setInterval() 函数会每隔 1000 毫秒(也就是 1 秒钟)执行一次 console.log() 函数并输出 "Hello, world!"。

区别

虽然 setTimeout() 和 setInterval() 都是定时器函数,但是它们之间还是有一些区别的。下面是它们之间的主要区别:

  1. 执行次数不同:setTimeout() 函数只会执行一次,而 setInterval() 函数会一直重复执行,直到被 clearInterval() 终止。
  2. 时间间隔不同:setTimeout() 函数只会在指定的时间后执行一次,而 setInterval() 函数会以固定的时间间隔执行多次。
  3. 是否能够精确控制执行时间:由于 JavaScript 运行环境的特殊性质,setTimeout() 函数的执行时间并不是非常准确的,因为它受到当前运行环境的影响。而 setInterval() 函数则可以通过调整时间间隔来实现更加精确的控制。

示例代码

下面是一个示例代码,演示了如何使用 setTimeout() 和 setInterval() 函数:

-- ---------
--- ----- - --

-- -- ------------ ----------
--------------------- -
  ------------------- ------ ---- -- ----------------
-- ------

-- -- ------------- ---------------------
--- ---------- - ---------------------- -
  --------
  ------------------- ------ ---- -- -------------- ------ - - -------

  -- ------ -- -- -
    --------------------------
  -
-- ------

在这个例子中,我们定义了一个计数器变量 count,然后使用 setTimeout() 函数延迟执行一个输出 "Hello, world!" 的操作,并设置延迟时间为 1000 毫秒。接着,我们使用 setInterval() 函数周期性执行另一个输出 "Hello, world!" 的操作,同时每次执行时将计数器加一,并且当计数器达到 5 时用 clearInterval() 终止定时器。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/9026