function start(){函數
xxxoop
setTimeOut( "start()",1000) //每隔1秒調用一次start函數blog
}隊列
參數:事件
第一個參數是須要回調的函數,必須傳入的參數,第二個參數是時間間隔,毫秒數,能夠省略。從第三個參數開始,依次用來表示傳入回調函數的參數。回調函數
setTimeOut()同步
若是想向回調函數傳參,能夠用bind(參數,參數)。io
清除定時器:console
setTimeout函數,返回一個表示計數器編號的整數值,將該整數傳入clearTimeout函數,就能夠取消對應的定時器。function
var id1 = setTimeout(f,1000); //id1就是timeoutID clearTimeout(id1);
栗子
console.log('a'); setTimeout(function(){ console.log('b'); },0); console.log('c'); console.log('d');
控制檯輸出: a c d b 理論上他延遲時間爲0不是應該立刻執行嗎,不是的。由於setTimeout運行機制說過,必需要等到當前腳本的同步任務和「任務隊列」中已有的事件,所有處理完之後,纔會執行setTimeout指定的任務。也就是說,setTimeout的真正做用是,在「任務隊列」的現有事件的後面再添加一個事件,規定在指定時間執行某段代碼。setTimeout添加的事件,會在下一次Event Loop執行。