相同點:兩個方法都是先觸發間隔時間,再觸發回調函數函數
區別:spa
1.setInterval每隔指定的時間就執行一次表達式,若不中止會一直執行下去回調函數
而setTimeout在執行時,是在載入後延遲指定時間後,去執行一次表達式,次數僅爲一次class
2.將setTimeout包含於被執行函數中,而後在函數外再次使用setTimeout來達到定時執行的目的 方法
這樣,函數外的setTimeout在執行函數時再次觸發setTimeout從而造成周而復始的定時效果,可是im
這樣每次時間就至關於延遲時間+函數執行時間,時間越久,偏差越大;時間
而setInterval是間隔時間去執行函數,並不會產生偏差,setInterval適用於顯示時間,精確度高回調