在学习JavaScript的时候碰到了需要使用定时器的时候,常把setTimeout 与 setInterval 搞混,特此记录
setTimeout()
setTimeout() 用来控制在指定毫秒之后运行函数
setTimeout(
function(){
alert("123");
}, 1000
);//在1000ms之后弹出123窗口
如果延迟执行的是函数,则将函数名作为第一个参数
function f() {
console.log(2);
}
setTimeout(f, 1000);
他还可以有更多的参数,会依次传入回调函数
setTimeout(function (a,b) {
console.log(a + b);
}, 1000, 1, 1);//后两个参数会传入回调函数,输出2,
setTimeout()可以使用clearTimeout()来取消后续函数操作的执行,clearTimeout() 方法的参数必须是由 setTimeout() 返回的 ID 值。
var a = setTimeout(
function(){
alert("123");
}, 1000
);
clearTimeout(a);
setInterval()
setInterval()用来在指定时间间隔循环执行函数操作。
setInterval(
function(){
console.log("1”);
},1000
);//每间隔1000ms就在控制台输出1
和setTimeout一样,setInterval也可以有多个参数,传入回调函数中
setInterval指定的是“开始执行”之间的间隔,并不考虑每次任务执行本身所消耗的时间。因此实际上,两次执行之间的间隔会小于指定的时间。比如,setInterval指定每 100ms 执行一次,每次执行需要 5ms,那么第一次执行结束后95毫秒,第二次执行就会开始。如果某次执行耗时特别长,比如需要105毫秒,那么它结束后,下一次执行就会立即开始。
setInterval()可以使用clearInterval()来取消循环的执行,一般会用到判断条件中。