乐闻世界logo
搜索文章和话题

setTimeout 与 setInterval 的区别是什么?

浏览12
6月24日 16:43

setTimeoutsetInterval 都是 JavaScript 中用于控制时间和执行定时任务的函数,但它们的工作方式和用途有所不同。

setTimeout

setTimeout 函数用于设置一个定时器,该定时器将在指定的毫秒数后执行一次您指定的函数或代码块。一旦定时器完成任务(即执行了指定的函数或代码),它就会停止。

用法示例:

javascript
function sayHello() { console.log('Hello!'); } // 调用 sayHello 函数,但是会在 2000 毫秒(2 秒)后执行 setTimeout(sayHello, 2000);

在这个例子中,sayHello 函数会在约 2 秒后执行一次,然后 setTimeout 就完成了它的任务。

setInterval

setTimeout 不同,setInterval 函数用于设置一个定时器,该定时器会无限次地以指定的时间间隔重复执行您指定的函数或代码块,除非您明确停止它。

用法示例:

javascript
function sayHelloRepeatedly() { console.log('Hello again!'); } // 每隔 2000 毫秒(2 秒),调用一次 sayHelloRepeatedly 函数 const intervalId = setInterval(sayHelloRepeatedly, 2000); // 当你想停止定时器时,可以调用 clearInterval // clearInterval(intervalId);

在这个例子中,sayHelloRepeatedly 函数会每隔 2 秒执行一次,这将一直持续下去,直到调用 clearInterval(intervalId) 才会停止这个定时器。

总结差异

  • setTimeout 是执行一次延迟操作的函数。
  • setInterval 是重复执行操作的函数,直到清除定时器。
  • setTimeout 定时器执行完毕后自动清除。
  • setInterval 定时器会持续运行,直到你调用 clearInterval

实际应用中,选择哪一个函数取决于你的具体需求:如果你需要延迟执行一次操作,使用 setTimeout;如果你需要以固定的时间间隔重复执行操作,使用 setInterval

标签:JavaScript前端