主要的区别是什么

setInterval

and

setTimeout

在JavaScript中?


setInterval重复调用,setTimeout只运行一次。


setInterval以间隔的方式反复触发,而setTimeout只触发一次。

参见MDN。


setTimeout(表情,超时);在超时后运行一次代码/函数。

setInterval(表情,超时);重复运行代码/函数,每次重复之间的超时长度。

例子:

var intervalID = setInterval(alert, 1000); // Will alert every second.
// clearInterval(intervalID); // Will clear the timer.

setTimeout(alert, 1000); // Will alert once, after a second.

setTimeout ():

它是一个在x间隔后执行JavaScript语句的函数。

setTimeout(function () {
    something();
}, 1000); // Execute something() 1 second later.

setInterval ():

它是一个每隔x间隔执行一个JavaScript语句的函数。

setInterval(function () {
    somethingElse();
}, 2000); // Execute somethingElse() every 2 seconds.

这两个函数的间隔单位都是毫秒。


setInterval ()

setInterval是一个基于时间间隔的代码执行方法,它具有在达到时间间隔时重复运行指定脚本的本机能力。脚本作者不应该将它嵌套到回调函数中以使其循环,因为默认情况下它会循环。除非调用clearInterval(),否则它将在间隔时间内继续触发。

如果你想循环动画或时钟的代码 然后使用setInterval。

function doStuff() {
alert("run your code here when time interval is reached");
}
var myTimer = setInterval(doStuff, 5000);

setTimeout ()

setTimeout是一种基于时间的代码执行方法,当达到间隔时,它只执行一次脚本,并且不会再次重复,除非通过将setTimeout对象嵌套在它调用的函数中来循环脚本。如果设置为循环,它将在间隔时间内继续触发,除非调用clearTimeout()。

function doStuff() {
alert("run your code here when time interval is reached");
}
var myTimer = setTimeout(doStuff, 5000);

如果你想让某件事在几秒钟后发生一次 然后使用setTimeout…因为当达到间隔时,它只执行一次。