JS執行機制

2022-09-08 22:03:26 字數 1202 閱讀 9798

// js執行機制:

//  js是單執行緒語言,但是允許同步和非同步執行

//同步就是乙個任務完成後再下乙個,非同步就是可以多個任務同時進行.

//問題1 :   結果是 1111   333 2222

console.log(1111)

settimeout(function () , 2000);

console.log(333333333)

//問題2:

//同步任務:  同步任務都在主線程上執行,形成乙個執行棧

//非同步任務:js的非同步是通過**函式實現的 ,一般非同步任務有三種型別:

//1.普通事件,如click,resize等  

//2.資源載入, 如 load, error等

//3.定時器,包括setinterval,settimeout等

//非同步任務相關的**函式新增到任務佇列中(任務佇列也叫做訊息佇列)

console.log(1111)

settimeout(function () , 0);

console.log(333333333)

//輸出結果是:  1111 333 2222;

//問題2的執行步驟:  先把執行棧的同步任務執行完,然後依次讀取任務佇列中的非同步任務,被讀取的任務進入執行棧,開始執行.

//問題3:  事件迴圈

console.log(1111)

document.onclick = function ()

settimeout(function () , 5000);

console.log(333333333)

//這個會先輸出 111 3333,然後根據點選時間,

//  0-5s點選: 任務佇列中會依次有onclick和settimeout兩個任務,結果會先輸出click再222;

//  5s以後點選:任務佇列中會依次有 settimeout和onclick兩個任務,結果會先輸出222再click

//在這個過程中,主線程執行完,會查詢任務佇列,取出乙個任務,推入主線程處理,

//然後繼續重複該動作, 該過程稱為事件迴圈

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互動事件 ...