JavaScript函数执行顺序之执行栈和执行队列
程序员文章站
2022-07-15 15:53:26
...
下面三个函数,我们看看在控制台输出结果,是哪个函数先执行:
console.log('a');
setTimeout(function(){
console.log('timeout');
},10);
console.log('b');
这三个函数执行结果一眼就能看出来:
a
b
timerout
但是如果把定时器时间改成0呢?
console.log('a');
setTimeout(function(){
console.log('timeout');
},0);
console.log('b');
我一开始以为结果会是
a
timerout
b
但是实际结果却是和之前设置为10毫秒一样,为什么?
函数执行是从执行站从上往下执行,延迟函数会先进入任务队列,等执行栈的函数执行完成后,才执行。