同步任務 非同步任務
同步任務:立即執行
非同步任務:進入到非同步佇列當中(event queue)eg:ajax,settimeout,then,setinterval
event loop 事件迴圈
task:macro task(巨集任務) micro task(微任務)
macro task(巨集任務):script( 整體**)、settimeout、setinterval、i/o、ui 互動事件、setimmediate(node.js 環境)
micro task(微任務):promise、mutaionobserver、process.nexttick(node.js 環境)
settimeout/promise 等api便是任務源,而進入任務佇列的是由他們指定的具體執行任務。來自不同任務源的任務會進入到不同的任務佇列。其中 settimeout 與 setinterval 是同源的。\
JS執行順序
一 語法分析 瀏覽器將所有js檢查一遍,看有沒有語法錯誤,這裡並不會執行,沒有錯誤則進行第二步,預編譯 二 預編譯 首先要理解函式宣告整體提公升,變數 宣告提公升。這裡要注意變數的提公升,一般我們宣告乙個變數都是 var a 1 console.log a 1 但實際上拆分成了兩步,真正執行是這樣的...
js執行順序
執行緒 cpu 排程的最小單位 程序 cpu 資源分配的最小單位 js是單執行緒的,在同一時間,只能做一件事。但是js有同步任務和非同步任務。同步 有a,b兩段 執行完a後執行b 非同步 有a,b兩段 a和b同時執行 在非同步任務中還有微任務和巨集任務 微任務 promise,process.nex...
js執行順序
本篇隨筆主要通過兩個案例來梳理promise執行順序和promise async await執行順序,介紹之前預設大家已經了解這兩個api的使用方法並且了解js巨集任務與微任務概念。文章末尾會附上相關資料,有興趣的可以檢視。一 promise console.log script start set...