setTimeout() ,setInterval()他们有什么区别?
在十四行用setTimeout()调用和用setInterval()调用函数为什么会不一样。setTimeout() ,setInterval()他们有什么区别?
在十四行用setTimeout()调用和用setInterval()调用函数为什么会不一样。setTimeout() ,setInterval()他们有什么区别?
2015-04-28
我给你注释一下JS代码吧。
var num=0; //定义变量num并赋值为0
function startCount() { //定义函数startCount
document.getElementById('count').value=num; //获取id为count并赋值为num
num=num+1; //这个就不用解释了吧
setTimeout("startCount()",1000); //setTimeout间隔1000毫秒去调用startCount函数
}
setInterval("startCount()",1000); //setInterval间隔1000毫秒去调用startCount函数
其实你用setInterval方法的话,里面的setTimeout方法可以去掉的。因为setInterval方法会不断的去调用startCount函数。
说错了。以这个为准。第一秒函数里面计数1,外面函数计数除了本身计数1还调用函数,所以1+1=2。第二秒的时候函数里面的code 自身再次调用 setTimeout(),也就是说函数里面是1+1=2,外面的setInterval()原本是2的,自增量是1,调用函数2,即2+1+2=5。第三秒的时候函数里面的code 自身再次调用 setTimeout()就是2+1=3,外面的setInterval()原本的值加自增量1,再加调用函数就是5+1+3=9。以此类推~~~~反正你只要记住函数外面和里面的code都在不断计算就可以啦。setInterval()递增的量除了1还有startCount()这个函数。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
</head>
<script type="text/javascript">
var num=0;
function startCount() {
document.getElementById('count').value=num;
num=num+1;
setTimeout("startCount()",1000);
}
setInterval("startCount()",1000);
</script>
</head>
<body>
<form>
<input type="text" id="count" />
</form>
</body>
</html>
举报