JS提供了两种计时器的方法
- window.setInterval();
这个方法就是在一个周期内反复执行一直到窗口关闭或者 clearInterval() - window.setTimeout();
延迟执行内容
setInterval()的使用方法:
setInterval(code,millisec);
code:可以是方法名,如果是方法不要加小括号。同时也可以是字符串用双引号将方法括起来。setInterval(“setCode()”,1000);或者setInterval(setCode,1000);
millisec:是毫秒数,就是隔了多久执行
var p1 = document.getElementById("p");
var n = 0;
var data = ["12345","67890"];
var rows = 0;
var cols = 0;
function setCode(){
if(cols < data[rows].length){
p1.innerHTML += data[rows][cols];
cols++;
}else if(rows < data.length){
p1.innerHTML += "</br>";
rows++;
cols = 0;
}else {
clearInterval(timer);
}
}
var timer = setInterval(setCode,500);
setTimeout和setInterval用法是一样的的。
那么在计时器中能否传递参数呢?答案是不能的那么怎么办呢,推荐使用匿名函数。
var person = {name: "peng", age: 23};
function getPerson(person){
alert(person.name);
}
var timer = setInterval(function(){
getPerson(person);
},1000);
就是在定义定时器是在重新写一个函数在函数里面去调用方法。
当然也可以直接将函数和参数用”“括起来 ,但是这样不能周期性改变参数的值