你不知道的JavaScript前端xuexi程序员

setTimeout延时0毫秒的作用

2017-09-19  本文已影响391人  顾川眉

setTimeout延时0毫秒的作用

遇到问题

我们在面试中经常遇到面试官会考这样一段代码:

console.log(1);
setTimeout(function() {
    console.log(2);
}, 0);
console.log(3);

打印出的结果应该依次是: 1 3 2. why?
简单点可以这么说: js是单线程的,是基于事件循环的。setTimeout函数是异步的,异步的事件会加入一个队列,当同步的任务执行完之后,才会执行。

解释

类似问题

Process.nextTick 和 setImmediate 的区别? 这个问题中的这张图很形象的说明了问题。 setTimeout(()=>{},0); 也会和第二张图类似。

上一篇 下一篇

猜你喜欢

热点阅读