JavaScript定时器:setTimeout()和setInterval()

时间:2023-03-09 06:37:40
JavaScript定时器:setTimeout()和setInterval()

1 超时调用setTimeout()

顾名思义,超时调用的意思就是在一段实际之后调用(在执行代码之前要等待多少毫秒)

setTimeout()他可以接收两个参数:

1 要执行的代码或函数

2 毫秒(在执行代码之前要等待多少毫秒)

function test(){
alert("孙悟空");
}
setTimeout(test,2000);  //2s后弹出 “孙悟空”

clearTimeout()

clearTimeout,表示清除定时器,可以用它取消未执行的调用

var timmer=function test(){
alert("孙悟空");
}
setTimeout(test,2000);  //2s后弹出 “孙悟空”
clearTimeout(timmer); //取消定时器,因为前者在两秒后调用,调用之前已经取消相当于什么也没发生

2 间歇调用setInterval()

间歇调用就是指定的时间内不断地重复执行代码,大白话就是“一会调用一次,一会调用一次”

setInterval()它也接收两个参数,与前者相同:

1 要执行的代码或函数

2 毫秒(在执行代码之前要等待多少毫秒)

function test(){
alert("孙悟空");
}
setInterval(test,2000);  //每隔2s后弹出一次 “孙悟空”

clearInterval()

clearInterval()与clearTimeout()使用方法相同,也是清除定时器方法

var num=0;
var max=10;
function test(){
num++;
if (num==max){
clearInterval(timer); //累加到10时清除清定时器
alert("这里有"+num+"个孙悟空");        //这里有10个孙悟空
}
}
timer=setInterval(test,500);

在上面的例子中,变量num每隔0.5s递增一次,当递增到最大值时就会清除先前设置的定时器(间歇调用)。

这个模式也可以用超时调用来实现

var num=0;
var max=10;
function test(){
num++;
if (num<max){
setTimeout(test,500);
}else{
alert("这里有"+num+"个孙悟空")
}
}
setTimeout(test,500);