定时器

2017-06-30  本文已影响0人  chengfengwang

参数问题

setTimeout(func|code, delay)
第一个参数可以是函数名,

setTimeout(f,1000);```

第一个参数可以是一段代码,必须以字符串的形式

setTimeout('console.log(2)',1000);```
或者

setTimeout(function (){console.log(2)},1000);```
###执行顺序
setTimeout会在指定时间向消息队列的末尾添加一条消息,参见单线程模式

setTimeout(function() {
console.log("Timeout");
}, 0);

function a(x) {
console.log("a() 开始运行");
b(x);
console.log("a() 结束运行");
}

function b(y) {
console.log("b() 开始运行");
console.log("传入的值为" + y);
console.log("b() 结束运行");
}

console.log("当前任务开始");
a(42);
console.log("当前任务结束");

// 当前任务开始
// a() 开始运行
// b() 开始运行
// 传入的值为42
// b() 结束运行
// a() 结束运行
// 当前任务结束
// Timeout

上面代码说明,setTimeout(f, 0)必须要等到当前脚本的*所有同步任务结束后才会执行。
上一篇 下一篇

猜你喜欢

热点阅读