'setInterval'和'setTimeout'
主要区别是什么?
的setInterval
和
的setTimeout
在JavaScript中?
setTimeout(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. 
  setInterval 每隔一段时间一次又一次触发,而setTimeout只触发一次。 
请参阅MDN的参考 。
的setTimeout():
 这是一个在x间隔AFTER执行JavaScript语句的函数。 
 setTimeout(function () { something(); }, 1000); // Execute something() 1 second later. 
的setInterval():
这是一个每隔x间隔执行一次JavaScript语句的函数。
 setInterval(function () { somethingElse(); }, 2000); // Execute somethingElse() every 2 seconds. 
 这两个函数的间隔单位是millisecond 。 
  setInterval重复调用, setTimeout只运行一次。 
的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 …因为它只在间隔到达时执行一次。