原本這兩個也沒什麼好說的 用法之類的自行看文檔瀏覽器
這裏說說用setTimeout模擬setInterval spa
爲何要模擬呢.用過setInterval的人可能會有這個需求code
setInterval指定的是,「開始執行」之間的間隔,所以實際上,兩次執行之間的間隔會小於setInterval指定的時間。假定setInterval指定,每100毫秒執行一次,每次執行須要5毫秒,那麼第一次執行結束後95毫秒,第二次執行就會開始。若是某次執行耗時特別長,好比須要105毫秒,那麼它結束後,下一次執行就會當即開始。blog
var i = 1; var timer = setInterval(function() { alert(i++); }, 2000);
上面代碼每隔2000毫秒,就跳出一個alert對話框。若是用戶一直不點擊「肯定」,整個瀏覽器就處於「堵塞」狀態,後面的執行就一直沒法觸發,將會累積起來。舉例來講,第一次跳出alert對話框後,用戶過了6000毫秒才點擊「肯定」,那麼第二次、第三次、第四次執行將累積起來,它們之間不會再有等待間隔。文檔
var i = 1; var timer = setTimeout(function() { alert(i++); timer = setTimeout(arguments.callee, 2000); }, 2000)
最後it
function interval(func, wait){ var interv = function(w){ return function(){ setTimeout(interv, w); func.call(null); } }(wait); setTimeout(interv, wait); } interval(function(){ console.log(2); },1000);