setInterval
和 setTimeout
是 JavaScript 中的两个计时器函数,它们的主要区别在于触发执行的方式和执行次数。
setTimeout
用于在指定的时间延迟后执行一次特定的操作。它接受两个参数:要执行的函数和延迟的时间(以毫秒为单位)。一旦经过指定的延迟时间,函数就会被调用一次。
例如,以下代码会在延迟 2000 毫秒后执行一次 console.log:
相反,setInterval
用于以指定的时间间隔重复执行特定的操作。它也接受两个参数:要执行的函数和时间间隔(以毫秒为单位)。一旦时间间隔结束,函数就会被调用一次。
以下代码会每隔 1000 毫秒执行一次 console.log
:
需要注意的是,setInterval
创建的计时器会无限循环执行,直到被取消。这可能会导致不必要的资源消耗。所以在使用 setInterval
创建计时器时,需要慎重考虑是否需要取消或清除计时器。
此外,在某些情况下,setTimeout
也可以用来模拟 setInterval
的效果。通过在延迟函数执行完成后再次调用 setTimeout
来间隔执行操作的效果与使用 setInterval
相似。
总结一下,setTimeout
用于延迟一段时间后执行一次操作,而 setInterval
用于以固定的时间间隔重复执行操作。