亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

來自setTimeout()的一個問題

練習要求做一個簡單的計時器,每隔一秒鐘計時一次。因此采用如下代碼:

var num=0;
? function startCount() {
??? document.getElementById('count').value=num;
??? num=num+1;
??? setTimeout(startCount,1000);
? }
? /*此處不明*/setTimeout(startCount,1000);

這樣一來就可以進行計時了。但是如果我把加注釋那里的語句寫成setTimeout(startCount);卻不能執行,難道一定要延時調用嗎?這里不解。

我在代碼前加上window.onload后寫成setTimeout(startCount);便可以執行,也就是我快照中的樣子,這是為什么呢?

我是初學者,對于上面提出的兩個疑問很難解決,看到的大神們如若能幫我解答一下,我會非常感謝大家噠!

正在回答

2 回答

應該是缺乏觸發動作~加了windows.onload 是頁面加載完就就自動執行了。加了setTimeout(startCount,1000) 也是1000 時間后就執行。 如果你弄清楚原因了 也請分享下

0 回復 有任何疑惑可以回復我~
#1

吾王比利 提問者

嗨,我已經清楚了,和你說的是一樣的哦,把我筆記貼給你吧! ①為什么要用setTimeout(startCount,1000);觸發而不是直接在函數寫完后使用startCount();調用自身呢? 原因是這樣的:JavaScript是解釋性的語言,就像人看書一樣,要看一句,執行一句,如果直接使用startCount();當解釋器看到這里時還沒有發現HTML標簽中的id屬性,自然也就不會執行了。 ②window.onload的作用是等網頁加載完后再執行,原理和上文的延時執行是一樣的,不贅述。
2015-08-18 回復 有任何疑惑可以回復我~
#2

Polly的遮陽傘 回復 吾王比利 提問者

幫大忙了!
2015-08-20 回復 有任何疑惑可以回復我~
#3

吾王比利 提問者 回復 Polly的遮陽傘

嘿嘿 共同進步哈
2015-08-20 回復 有任何疑惑可以回復我~

加引號“startCount” 這樣寫就好了

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468975    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

來自setTimeout()的一個問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號