參數(shù)問題
setTimeout(func|code, delay)
第一個參數(shù)可以是函數(shù)名,
setTimeout(f,1000);```
第一個參數(shù)可以是一段代碼,必須以字符串的形式
setTimeout('console.log(2)',1000);```
或者
setTimeout(function (){console.log(2)},1000);```
###執(zhí)行順序
setTimeout會在指定時間向消息隊列的末尾添加一條消息,參見單線程模式
setTimeout(function() {
console.log("Timeout");
}, 0);
function a(x) {
console.log("a() 開始運行");
b(x);
console.log("a() 結(jié)束運行");
}
function b(y) {
console.log("b() 開始運行");
console.log("傳入的值為" + y);
console.log("b() 結(jié)束運行");
}
console.log("當前任務(wù)開始");
a(42);
console.log("當前任務(wù)結(jié)束");
// 當前任務(wù)開始
// a() 開始運行
// b() 開始運行
// 傳入的值為42
// b() 結(jié)束運行
// a() 結(jié)束運行
// 當前任務(wù)結(jié)束
// Timeout
上面代碼說明,setTimeout(f, 0)必須要等到當前腳本的*所有同步任務(wù)結(jié)束后才會執(zhí)行。