摘要:若是函數,則只需要寫函數名,可以不加雙引號和括號必需。返回值返回整型定時器也就是這個的唯一標示符。取消定時器利用取消運行機制性能性能較優穩定性更穩定鏈式調用實現作用域相關經典面試題為每個定時器處理函數創建不同的變量副本。
setTimeout | setInterval | ||
---|---|---|---|
描述 | 實現的是根據給定的時間間隔,每隔一段時間調用一次函數或執行一次代碼 | 實現的是根據給定的時間,在經過該時間之后只調用一次函數或執行一次代碼 | |
語法 | setTimeout (callback, delay, arg1, ..., argn) | setInterval (callback, interval, arg1, ..., argn) | |
參數 | callback | 必需。要調用的函數或要執行的代碼串。(若是函數,則只需要寫函數名,可以不加雙引號和括號) | |
delay / interval | 必需。在執行代碼前需等待的毫秒數。 | ||
arg1, ..., argn | 可選。給回調函數的傳參。 | ||
返回值 | 返回整型定時器id,也就是這個setTimeout/setInterval 的唯一標示符。 | ||
取消定時器 | 利用 clearTimeout(id) 取消 | ||
運行機制 | |||
性能 | 性能較優 | ||
穩定性 | 更穩定 |
var interval = 3 * 1000, count = 0; function someOpration(){ var startTime = new Date(); console.log(startTime.toLocaleString() + " " + startTime.getMilliseconds()); var sum = 0; for(let i=0; i < 2000000000; i++){ sum += i; } var endTime = new Date(); console.log(endTime.toLocaleString() + " " + endTime.getMilliseconds()); var duration = endTime - startTime; console.log(duration); }
setTimeout 鏈式調用
function slow1(){ if(count < 5){ someOpration(); count = count + 1; setTimeout(slow1, interval); } } setTimeout(slow1, interval);
setInterval 實現
var interval = 3 * 1000, count = 0; function slow2(){ if(count < 5){ someOpration(); count = count + 1; } else { clearTimeout(timerId); } } var timerId = setInterval(slow2, interval)setTimeout作用域相關經典面試題
for (var i = 1; i <= 2; i++) { setTimeout(function() { alert(i) }, 100); } // 3 // 3為每個定時器處理函數創建不同的“i”變量副本。比如這樣
for (var i = 1; i <= 2; ++i){ doSetTimeout(i); } function doSetTimeout(i) { setTimeout(function() { alert(i); }, 100); }可簡寫為
for (var i = 1; i <= 2; i++) { setTimeout(function(j) { console.log(j) }, 100, i); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99024.html
摘要:瀏覽器與的異同,以及部分機制有人對部分迷惑,本身構造函數是同步的,是異步。瀏覽器的的已全部分析完成,過程中引用阮一峰博客,知乎,部分文章內容,侵刪。 瀏覽器與NodeJS的EventLoop異同,以及部分機制 PS:有人對promise部分迷惑,Promise本身構造函數是同步的,.then是異步。---- 2018/7/6 22:35修改 javascript 是一門單線程的腳本...
摘要:定時器方法相關方法有四種。返回值返回值是一個正整數,表示定時器的編號。這個值可以傳遞給來取消該定時器。使用方法很簡單只有一個參數,該參數為您要取消定時器的標識符。用法很簡單當代碼運行到這行的時候,會取消所設置的定時器。 簡單介紹在JavaScript中定時器有兩個 setInterval() 與 setTime...
摘要:當間隔時間設置較小時,將會導致回調函數堆積。處理可能阻塞的代碼最簡單且最可控的方式就是在回調函數內部使用函數。但是很明顯,由于指定最大值的限制,還會有定時器沒有被清除掉。另外,盡量避免使用函數,從而避免可能導致的回調函數堆積現象。 由于 Javascript 是異步的,因此我們可以通過 setTimeout 和 setInterval 函數來指定特定時間執行代碼。 function ...
閱讀 1206·2021-11-24 11:16
閱讀 3435·2021-11-15 11:38
閱讀 1927·2021-10-20 13:47
閱讀 552·2021-09-29 09:35
閱讀 2199·2021-09-22 15:17
閱讀 1016·2021-09-07 09:59
閱讀 3385·2019-08-30 13:21
閱讀 2909·2019-08-30 12:47