主要的区别是什么
setInterval
而且
setTimeout
在JavaScript中?
setInterval重复调用,setTimeout只运行一次。
setInterval在时间间隔中反复触发,而setTimeout只触发一次。
看到MDN基准。
setTimeout(expression, timeout);在超时后运行代码/函数< >强一次< / >强。
setTimeout(expression, timeout);
setInterval(expression, timeout);运行代码/函数反复<强> < /强>,每次重复之间的超时长度。
setInterval(expression, timeout);
例子:
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():
setTimeout()
它是一个执行JavaScript语句AFTER x interval的函数。
AFTER
setTimeout(function () { something(); }, 1000); // Execute something() 1 second later.
setInterval():
setInterval()
它是一个执行JavaScript语句EVERY x interval的函数。
EVERY
setInterval(function () { somethingElse(); }, 2000); // Execute somethingElse() every 2 seconds.
这两个函数的间隔单位都在millisecond中。
millisecond
setInterval是一个基于时间间隔的代码执行方法,它具有在达到时间间隔时重复运行指定脚本的本机能力。脚本作者不应该将它嵌套到回调函数中以使其循环,因为默认情况下它会循环。除非调用clearInterval(),否则它将在间隔时间内继续触发。
如果你想循环动画或时钟的代码 然后使用setInterval.
function doStuff() { alert("run your code here when time interval is reached"); } var myTimer = setInterval(doStuff, 5000);
setTimeout是一种基于时间的代码执行方法,当达到间隔时,它只执行一次脚本,并且不会再次重复,除非通过将setTimeout对象嵌套在它调用的函数中来循环脚本。如果设置为循环,它将在间隔时间内继续触发,除非调用clearTimeout()。
function doStuff() { alert("run your code here when time interval is reached"); } var myTimer = setTimeout(doStuff, 5000);
如果你想让某件事在几秒钟后发生一次 然后使用setTimeout…因为当达到间隔时,它只执行一次