課程
/前端開發
/JavaScript
/JavaScript進階篇
在十四行用setTimeout()調用和用setInterval()調用函數為什么會不一樣。setTimeout() ,setInterval()他們有什么區別?
2015-04-28
源自:JavaScript進階篇 8-5
正在回答
我給你注釋一下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函數。
么么噠小七 提問者
Perona 回復 么么噠小七 提問者
簡單就會快樂
...
??????????????????????????
最佳答案設錯了,請不懂的同學看下面的解釋哈。
別人都回復了你那么多的東西,你都不把別人的回復設置為正確答案。
簡單就會快樂 回復 簡單就會快樂
說錯了。以這個為準。第一秒函數里面計數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>
setTimeout() 方法用于在指定的毫秒數后調用函數或計算表達式。
setTimeout() 只執行 code 一次。如果要多次調用,請使用 setInterval() 或者讓 code 自身再次調用 setTimeout()。setInterval() 方法可按照指定的周期(以毫秒計)來調用函數或計算表達式。
setInterval() 方法會不停地調用函數,直到 clearInterval() 被調用或窗口被關閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數。
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
2 回答setInterval()和setTimeout有什么區別
2 回答setInterval setTimeout的區別:
1 回答setInterval(clock,1000);和setTimeout(clock,1000);有什么區別
2 回答求setTimeout與setInterval 的區別
3 回答不懂setInterval和setTimeout的區別
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
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函數。
2015-05-04
...
2015-05-02
??????????????????????????
2015-04-28
最佳答案設錯了,請不懂的同學看下面的解釋哈。
2015-04-28
別人都回復了你那么多的東西,你都不把別人的回復設置為正確答案。
2015-04-28
說錯了。以這個為準。第一秒函數里面計數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()這個函數。
2015-04-28
<!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>
2015-04-28
setTimeout() 方法用于在指定的毫秒數后調用函數或計算表達式。
setTimeout() 只執行 code 一次。如果要多次調用,請使用 setInterval() 或者讓 code 自身再次調用 setTimeout()。setInterval() 方法可按照指定的周期(以毫秒計)來調用函數或計算表達式。
setInterval() 方法會不停地調用函數,直到 clearInterval() 被調用或窗口被關閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數。