js是瀏覽器指令碼語言,用於與使用者互動、操作dom,注定只能是單執行緒的。h5允許jd建立多個執行緒,但是子執行緒完全受主線程控制,且不得操作dom。
話不多說,就簡單的舉例幾個(乾貨)
async function async1()
async function async2()
console.log('script start');
settimeout(function() , 0)
async1();
new promise(function(resolve) ).then(function() );
console.log('script end');
//執行順序
//script start ==>async1 start==>async2==>promise1==>script end==>async1 end==> promise2==>settimeout
w: async1 end promise2
h:settimeout
async function async1()
async function async2() ).then(function() );
}console.log('script start');
settimeout(function() , 0)
async1();
new promise(function(resolve) ).then(function() );
console.log('script end');
//執行順序
//script start==>async1 start==>promise1==> promise3==>script end==>promise2==>async1 end ==>promise4==>settimeout
w:promise2 async1 end promise4
h:settimeout
async function async1() ,0)
}async function async2() ,0)
}console.log('script start');
settimeout(function() , 0)
async1();
new promise(function(resolve) ).then(function() );
console.log('script end');
//執行順序
// script start==>async1 start==> promise1==>script end==>promise2==>settimeout3==> settimeout2 ==> settimeout1
w:promise2
h:settimeout3 settimeout2 settimeout1
async function a1 ()
async function a2 ()
console.log('script start')
settimeout(() => , 0)
promise.resolve().then(() => )
a1()
let promise2 = new promise((resolve) => )
promise2.then((res) => )
})console.log('script end')
//執行順序
// script start==>a1 start==>a2==>promise2==> script end==>promise1==>a1 end==> promise2.then==>promise3==>settimeout
w: promise1 a1 end promise2.then promise3
h:settimeout
JS執行機制
js是單執行緒的,settimeout和setinterval是非同步任務,要掛起,不先執行,等同步任務完成之後,再去處理非同步任務 console.log 1 settimeout function 0 console.log 3 console.log 4 輸出 1 3 4 2console.l...
JS執行機制
輸出結果為 1,2,3 js是從上到下執行的 js是單執行緒的,即在同一時間只能做一件事情 遇到同步程式,直接執行 遇到非同步程式,先掛起,等同步程式執行完畢後再執行 同步佇列 優先順序最高 非同步佇列 遇到非同步佇列先掛起,等同步佇列執行完後,再選擇執行非同步佇列的某個 settimeout中的時...
JS執行機制
js單執行緒 在同一時間js只能做一件事。為什麼是單執行緒?如果多執行緒,同時操作乙個dom會出問題。非阻塞 event loop 事件迴圈 任務佇列 同步任務佇列要優先於非同步任務佇列處理。非同步任務被分為巨集任務和微任務。常見的非同步任務分類如下 巨集任務 定時器系列,dom事件 ui互動事件 ...