JS 演變 單執行緒 非同步任務

2022-07-29 00:15:23 字數 1231 閱讀 5865

js是一門指令碼語言、解析型語言、弱型別語言、動態型別語言。

歷史演變:

js 作為一門指令碼語言,其執行環境:web瀏覽器、node、adobe flash

dom詳解

1. js 執行在瀏覽器中,是單執行緒的

2. 瀏覽器是多執行緒的:

3. 瀏覽器中的 js 任務1. js主線程 ---> 由js引擎提供

2. js同步任務 ---> js引擎中,主線程上乙個個排隊執行的任務

3. js非同步任務 ---> js引擎中

4. js任務佇列 / 訊息佇列 ---> js引擎中,存放 非同步任務

5. 事件迴圈 eventloop1. 非同步任務是如何被執行的?

2.常見的非同步任務 ---> onclick 等事件的毀掉函式

3. 常見的非同步任務 ---> settimeout / setinterval 等計時器 ( 時間延遲 )

4. 常見的非同步任務 ---> ajax 請求1. 非同步程式設計是有需求的

2. 非同步程式設計解決方案 ---> **函式

function f1(callback), 1000);

}   

f1(f2)

3. 非同步程式設計解決方案 ---> 事件監聽(事件驅動模式)

// 這裡採用的jquery的寫法

f1.on('done', f2);

function f1(), 1000);

}

4. 非同步程式設計解決方案 ---> 發布 / 訂閱 (觀察者模式)
jquery.subscribe("done", f2);

function f1(), 1000);

}

5. 非同步程式設計解決方案 ---> es6中 promises物件
function f1(), 500);

return dfd.promise;}  

f1().then(f2).then(f3);

//指定失敗的**函式

f1().then(f2).fail(f3);

6. 非同步程式設計解決方案 ---> es7 引入了像c#語言中的 await,async關鍵字
// 這裡認為 f2 是非同步函式

async function f1 ()

// 以上執行順序是: console.log(1); f2(); console.log(2);

js 單執行緒 非同步

執行緒與程序 程序是系統資源分配和排程的單元。乙個執行著的程式就對應乙個程序。在windows中,每乙個開啟的執行的應用程式或後台程式,比如執行中的qq,谷歌瀏覽器,網易雲 資源管理器等都是乙個程序。乙個程序包括了執行中的程式和程式所使用到的記憶體和系統資源。比如,邊聽 邊在寫部落格,這 就是開了兩...

JS 非同步與單執行緒)

js 非同步與單執行緒 題目1.同步和非同步的區別是什麼,試舉例 例子見知識點 區別 1.同步會阻塞 執行,而非同步不會 2.alert 是同步,settimeout 是非同步 題目2.關於 settimeout 結果 1 3 5 2 4 題目3.前端使用非同步的場景有哪些 1.定時任務 setti...

JS非同步和單執行緒舉例

js 需要非同步的根本原因是 js 是單執行緒運 的,即在同 時間只能做 件事,不能 個 ajax 請求由於 絡 較慢,請求需要 5 秒鐘。如果是同步,這 5 秒鐘 就卡死在這 啥也做不了了。非同步的話,就好很多了,5 秒等待就等待了,其他事情不耽誤做,於那 5 秒鐘等待是 速太慢,不是因為 js ...