在下面的代码中,数字 1-4 会以什么顺序输出

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

setTimeout ,这个是把事件执行放入到队列中去的操作。由于是异步的,会先吧 输出三的操作 放到事件执行队列 ,根据延迟时间 ,为立即执行,但是js是单线程的,将三放入执行队列的时候,已经执行四了。所以是1432.

延迟1秒输出数字'2'。
1,3,4,2

setTimeout 不会阻塞程序
1, 4 , 3, 2