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() 都是定时器函数,但是它们之间还是有一些区别的。下面是它们之间的主要区别:
- 执行次数不同:setTimeout() 函数只会执行一次,而 setInterval() 函数会一直重复执行,直到被 clearInterval() 终止。
- 时间间隔不同:setTimeout() 函数只会在指定的时间后执行一次,而 setInterval() 函数会以固定的时间间隔执行多次。
- 是否能够精确控制执行时间:由于 JavaScript 运行环境的特殊性质,setTimeout() 函数的执行时间并不是非常准确的,因为它受到当前运行环境的影响。而 setInterval() 函数则可以通过调整时间间隔来实现更加精确的控制。
示例代码
下面是一个示例代码,演示了如何使用 setTimeout() 和 setInterval() 函数:
-- --------- --- ----- - -- -- -- ------------ ---------- --------------------- - ------------------- ------ ---- -- ---------------- -- ------ -- -- ------------- --------------------- --- ---------- - ---------------------- - -------- ------------------- ------ ---- -- -------------- ------ - - ------- -- ------ -- -- - -------------------------- - -- ------
在这个例子中,我们定义了一个计数器变量 count,然后使用 setTimeout() 函数延迟执行一个输出 "Hello, world!" 的操作,并设置延迟时间为 1000 毫秒。接着,我们使用 setInterval() 函数周期性执行另一个输出 "Hello, world!" 的操作,同时每次执行时将计数器加一,并且当计数器达到 5 时用 clearInterval() 终止定时器。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/9026