setInterval與setTimeout的區(qū)別

說道setTimeout,很容易就會想到setInterval,因為這兩個用法差不多,但是又有區(qū)別


setTimeout

定義和用法: setTimeout()方法用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計算表達式。

語法: setTimeout(code,millisec)

參數(shù): code (必需):要調(diào)用的函數(shù)后要執(zhí)行的 JavaScript 代碼串。millisec(必需):在執(zhí)行代碼前需等待的毫秒數(shù)。   提示: setTimeout() 只執(zhí)行 code 一次。如果要多次調(diào)用,請使用 setInterval() 或者讓 code 自身再次調(diào)用 setTimeout()。

setInterval


setInterval() 方法可按照指定的周期(以毫秒計)來調(diào)用函數(shù)或計算表達式。

setInterval() 方法會不停地調(diào)用函數(shù),直到 clearInterval() 被調(diào)用或窗口被關(guān)閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數(shù)。

語法: setInterval(code,millisec[,"lang"])

參數(shù): code 必需。要調(diào)用的函數(shù)或要執(zhí)行的代碼串。millisec 必須。周期性執(zhí)行或調(diào)用 code 之間的時間間隔,以毫秒計。

返回值: 一個可以傳遞給 Window.clearInterval() 從而取消對 code 的周期性執(zhí)行的值。

區(qū)別

通過上面可以看出,setTimeout和setinterval的最主要區(qū)別是:

setTimeout只運行一次,也就是說設(shè)定的時間到后就觸發(fā)運行指定代碼,運行完后即結(jié)束。如果運行的代碼中再次運行同樣的setTimeout命令,則可循環(huán)運行。(即 要循環(huán)運行,需函數(shù)自身再次調(diào)用 setTimeout())

而 setinterval是循環(huán)運行的,即每到設(shè)定時間間隔就觸發(fā)指定代碼。這是真正的定時器。

setinterval使用簡單,而setTimeout則比較靈活,可以隨時退出循環(huán),而且可以設(shè)置為按不固定的時間間隔來運行,比如第一次1秒,第二次2秒,第三次3秒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容