setTimeOut()和setInterval()都是用来处理延时和定时任务的函数,比如打开一个网页之后过段时间就会弹出一个对话框或登录框,再或者页面每隔一段时间执行一个函数。
setTimeOut()只执行一次,且是在指定的毫秒数之后再调用函数。
setInterval()可以执行多次,是在每隔指定的毫秒数循环调用函数,直到clearInterval把它清除掉。
var timer=setTimeout(“函数名”,时间) 定时器,只调用一次;timer为返回的对象;
clearTimeout(timer) 清除定时器
window.setTimeout(func.100)或setTimeout(func.100),两个写法基本一样,只不过window.setTimeout将setTimeout函数作为全局window对象的一个属性来引用。
代码执行时,100毫秒之后调用func函数
代码例子:
function timeout(){
document.getElementById('box1').innerHTML="hello我只执行一次哦!";
}
setTimeout(timeout,2000);
注意这里 setTimeout(timeout,2000);看清楚timeout没有写括号,加了括号是立即执行的意思,一加载网页就会出现那句话 。如果非得写括号,你可以这样子setTimeout(“timeout()”,2000)
var timer =setInterval(“函数”,时间) 定时器,每格 一段时间(毫秒)调用一次函数,直到使用clearInterval清除该定时器;
clearInterval(timer); 清除定时器,即停止调用
代码例子:直接上牛客网上的例子吧
实现一个打点计时器,要求
1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 1
2、返回的对象中需要包含一个 cancel 方法,用于停止定时操作
3、第一个数需要立即输出
function count(start, end) {
console.log(start++);
var timer = setInterval(function(){
if(start<=end){
console.log(start);
start++;
} else{
clearInterval(timer);
}
},100);
return{
cancel:function(){
clearInterval(timer);
}
};
}