先看一段代碼:
console.log("1");
setTimeout(function(){
console.log("2");
},1000);
console.log("3");
setTimeout(function(){
console.log("4");
},0);
輸出結果是什么?
這里涉及到一個概念,首先JS是單線程的,而在JS中有兩種任務:
1)同步任務:同步任務按順序執行
2)異步任務:所有的異步任務會被放在一個任務隊列中,在 同步任務執行完畢之后,才會執行任務隊列中的異步任務 。
由此推理,以上代碼的輸入結果應該是:1 3 4 2