javascript學(xué)習(xí)隨筆之settimeout和setinterval

setinterval(code,msNum)方法在之前淺學(xué)javascript的時(shí)候有學(xué)到過,當(dāng)時(shí)老師因?yàn)榍疤崾侵v定時(shí)器,所以重點(diǎn)講解了setinterval方法。對(duì)于setTimeout方法只是有提一下。這也滋生了我的懶惰;"隨遇而安"的態(tài)度讓我沒有去看下兩個(gè)的差別到底在哪里?

直到今天在看一段代碼的時(shí)候,剛好看到了setTimeout(),突然就懵圈了。于是在網(wǎng)上一陣陣的尋找;似乎找到了這么點(diǎn)眉目,于是今天想把它記錄下來(lái)。首先setTimeout是延時(shí)執(zhí)行,并且只執(zhí)行一次。而setInterval是每間隔多長(zhǎng)時(shí)間執(zhí)行一次里面的代碼塊。這是它倆的最基本的區(qū)別。那么setTimeout居然在現(xiàn)在的很多實(shí)現(xiàn)中居然也有充當(dāng)setInterval的角色。它又是如何做到的?這個(gè)就需要知道一點(diǎn)函數(shù)遞歸的知識(shí)了。想要讓setTimeout也執(zhí)行多次。需要將setTimeout放在它所執(zhí)行的函數(shù)中進(jìn)行無(wú)限遞歸。舉個(gè)小例子:

? ? function example(){

.....//功能代碼

var timer=setTimeout(example,2000);

? ? }

這樣setTimeout就會(huì)無(wú)限的執(zhí)行下去,直到clearTimeout(timer)就結(jié)束。它實(shí)現(xiàn)效果類似于下面這段代碼。

function example(){

.....//功能代碼

}

setInterval(example,2000);

恩,想記錄的關(guān)于這兩者的小小知識(shí)點(diǎn)就這么多。還有更高深的待學(xué)懂了再來(lái)補(bǔ)充。

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

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

  • 單例模式 適用場(chǎng)景:可能會(huì)在場(chǎng)景中使用到對(duì)象,但只有一個(gè)實(shí)例,加載時(shí)并不主動(dòng)創(chuàng)建,需要時(shí)才創(chuàng)建 最常見的單例模式,...
    Obeing閱讀 2,315評(píng)論 1 10
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,555評(píng)論 19 139
  • JavaScript提供定時(shí)執(zhí)行代碼的功能,叫做定時(shí)器(timer),主要由setTimeout()和setInt...
    晚晴幽草閱讀 1,726評(píng)論 1 18
  • 工廠模式類似于現(xiàn)實(shí)生活中的工廠可以產(chǎn)生大量相似的商品,去做同樣的事情,實(shí)現(xiàn)同樣的效果;這時(shí)候需要使用工廠模式。簡(jiǎn)單...
    舟漁行舟閱讀 8,130評(píng)論 2 17
  • 在javascript中,定時(shí)器有兩種,一種是setTimeout(),還有一種的setTimeout() set...
    Alkaidx閱讀 605評(píng)論 0 0

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