setTimeout OR setInterval?

setTimeout 和setInterval從字面上應該是能夠知道其大意的。timeout:延時;interval:間隔;編程

二者的區別就像是它們本身的英文解釋同樣:setTimeout是延時執行,而且它只執行一次(ps:固然也有方法讓它無限執行);setInterval是間隔式的執行,每隔多少時間就執行一次。它會不斷地循環執行。舉個小例子:編程語言

上面說到setTimeout能夠實現循環執行,方法也很簡單,就是用一個遞歸就能夠了。(ps:遞歸能夠理解爲在一個函數裏面再去調用它本身)函數

那麼實現原理就是setTimeout在一個函數內使用,而且它的function函數參數傳遞的就是它所在的函數。通常狀況下遞歸調用是須要有一個結束的條件的,否則就變成了死循環。在學習

其餘編程語言中這是咱們不想要的結果,可是把這個死循環放在咱們的這個setTimeout裏面來就剛恰好能夠實現間隔性的執行函數。不知道我有沒有說明白,沒有明白的話,看代碼:又舉個小例子(ps:這個例子是在某一本圖書中看到的,感受還不錯的樣子,粘貼過來供你們學習)blog

script代碼塊遞歸

body代碼塊ip

 

 好啦,這二者的分享就到這裏了。因爲本人才疏學淺,有些地方表達不太準確或者有誤但願你們指出,共同窗習。io

相關文章
相關標籤/搜索