window.setTimeout([function],[interval]) 設置一個定時器,並且設定了一個等待的時間[interval],當到達時間後,執行對應的方法[function],當方法執行完成定時器停止(但是定時器還在,只不過沒用了);
window.setInterval([function],[interval]) 設置一個定時器,並且設定了一個等待的時間[interval],當到達時間後,執行對應的方法[function],當方法執行完成,定時器並沒有停止,以後每隔[interval]這麼長的時間都會重新的執行對應的方法[function],直到我們手動清除定時器為止;
2、JS中的定時器是有返回值的:->返回值是一個數字,代表當前是第幾個定時器
var timer1=window.setTimeout(function(){},1000); //timer1->1 當前是第一個定時器
var timer2=window.setTimeout(function(){},1000); //timer2->2 當前是第二個定時器
window.clearTimeout(timer1); //->把第一個定時器清除掉,這裡也可以用window.clearInterval(timer1)、window.clearTimeout(1)、window.clearInterval(timer1);
var timer3=window.setTimeout(function(){},1000); //timer3->3 當前是第三個定時器 ,雖然上面的定時器timer1清除掉了,但是號還是繼續往後排的;
window.clearInterval(timer1)/window.clearTimeout(time1);兩種清除方式都可以清除通過setTimeout和setInterval設置的定時器(兩種方式在設置定時器的時候有區別,清除定時器的時候沒有區別),並且參數不僅可以是timer,還可以是其返回值,例如1,2;需要注意的是,定時器即使清除了,其返回值也不會清除,之後設置的定時器的返回值也會在其返回值的基礎上繼續向後排,這點類似於銀行的排隊領號,即使1號的業務辦理完了,後邊的人仍是從2號開始繼續領號,而不是重新從1開始;