課程
/前端開發
/JavaScript
/JavaScript進階篇
為啥要有兩個setTimeout()?
2017-02-23
源自:JavaScript進階篇 8-5
正在回答
我是這么理解兩個setTimeout()的,最外層的那個是用來調用內層的setTimeout,相當于我們在增加一個button來啟動這個定時器。因為在<script>中僅僅是定義了函數,并沒有調用它,而函數體外的setTimeout語句則是調用了內部的函數,計時開始,我們可以將外部的setTimeout函數的延遲時間加長,來驗證我這一觀點。如有錯誤,還請斧正
sUcK_lOlIpOp
不錯,說的很好。
我吃過虧,讓我自己回答自己的問題吧 . 讓自己印象深刻點....? 先貼上代碼
圖一:
圖二:
前后兩個代碼都可以實現記數功能,圖一是放在head標簽里, 圖二我是放在 底部的body標簽.?
其實理解起來很簡單,因為瀏覽器執行代碼是從上到下渲染的.? 先說圖二吧;放在body標簽底部,代碼執行到這時找到了id為count 每隔一秒執行startCount()函數 并且value值可以遞增;
圖一其實由于瀏覽器的渲染機制 找不到id為count的元素 此時如果直接執行startCount()函數,最初是執行不了的.
這個是函數的自己調用自己。
下面setTimeout(“startCount()”1000)。你可以理解成1000微秒執行函數,執行一下發現還有一個函數可以執行 接著再次執行函數.(相當于一個人一次一秒扔1塊錢,你一秒撿一塊錢,撿了還有撿,一直撿下去.ps:假如我們都是愛錢的人)
第一個set函數相當于扔錢的,但是扔了沒人計數,需要有人撿才會計數.那么第二函數你可以理解為 撿錢的人的動作.
個人理解。我覺得圖一代碼不嚴謹,
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
4 回答為什么要寫兩個setTimeout?
2 回答為什么要加兩個setTimeout
1 回答為什么要用兩個setTimeout("startCount()",1000)
3 回答為什么要設置兩次setTimeout
1 回答任務里面為什么要設置兩個setTimeout()
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-08-03
我是這么理解兩個setTimeout()的,最外層的那個是用來調用內層的setTimeout,相當于我們在增加一個button來啟動這個定時器。因為在<script>中僅僅是定義了函數,并沒有調用它,而函數體外的setTimeout語句則是調用了內部的函數,計時開始,我們可以將外部的setTimeout函數的延遲時間加長,來驗證我這一觀點。如有錯誤,還請斧正
2017-05-27
不錯,說的很好。
2017-02-23
我吃過虧,讓我自己回答自己的問題吧 . 讓自己印象深刻點....? 先貼上代碼
圖一:
圖二:
前后兩個代碼都可以實現記數功能,圖一是放在head標簽里, 圖二我是放在 底部的body標簽.?
其實理解起來很簡單,因為瀏覽器執行代碼是從上到下渲染的.? 先說圖二吧;放在body標簽底部,代碼執行到這時找到了id為count 每隔一秒執行startCount()函數 并且value值可以遞增;
圖一其實由于瀏覽器的渲染機制 找不到id為count的元素 此時如果直接執行startCount()函數,最初是執行不了的.
這個是函數的自己調用自己。
下面setTimeout(“startCount()”1000)。你可以理解成1000微秒執行函數,執行一下發現還有一個函數可以執行 接著再次執行函數.(相當于一個人一次一秒扔1塊錢,你一秒撿一塊錢,撿了還有撿,一直撿下去.ps:假如我們都是愛錢的人)
第一個set函數相當于扔錢的,但是扔了沒人計數,需要有人撿才會計數.那么第二函數你可以理解為 撿錢的人的動作.
個人理解。我覺得圖一代碼不嚴謹,