为什么setTimeout函数最后执行?

时间:2018-10-23 13:24:35

标签: javascript

我有以下代码

console.log('one'); 
setTimeout(function() { console.log('two'); });
console.log('three');

运行时的代码输出是一,三,二

但是我觉得应该是一,二,三,因为我没有提供等待时间,它将等待时间默认设置为0,即不等待。

那么输出是1、3、2而不是1、2、3的原因是什么?

1 个答案:

答案 0 :(得分:2)

setTimeout 安排执行功能。直到当前线程将控制权交还给浏览器之后,该调度程序才开始执行操作,例如在执行最后一个日志记录语句之后。