setTimeout函数执行顺序
所有可执行代码执行完毕之后,才会开始执行由setTimeout定义的操作。而这些setTimeout操作执行的顺序,则由设定的延迟时间来决定。
setTimeout(function () {
console.log(a);
}, 0);
var a = 10;
console.log(b);
console.log(fn);
var b = 20;
function fn() {
setTimeout(function () {
console.log('setTImeout 10ms.');
}, 10);
}
fn.toString = function () {
return 30;
}
// console.log()和alert()等函数预期输出一个String值,所以在输出前会调用toString()方法,
// 即console.log(fn) 在输出前会调用fn.toString()
console.log(fn);
setTimeout(function () {
console.log('setTimeout 20ms.');
}, 20);
fn();