JavaScript事件執行eventLoop講述

2021-09-25 04:24:23 字數 766 閱讀 7987

js是單執行緒的,所以執行任務採用同步,非同步的方式進行,執行過程是如下。

也就是同步任務全部執行完成,再執行非同步任務。

非同步任務裡面又分為巨集任務和微任務。

執行順序如下圖

也就是巨集任務多次執行,微任務一次執行。巨集任務先執行乙個,微任務全部執行,再執行剩餘的巨集任務

巨集任務中執行優先順序

微任務中優先順序

再次總結就是主任務執行後,執行微任務,再執行settimeout,setinterval,setimmediate

settimeout(func(){},0),意思是同步任務執行完成後,主線程棧空後,然後再執行,但是主線程一直為空,由於機制問題,還是最小為4ms。

**示例1:

console.log("巨集任務優先順序最高執行")

JavaScript 事件執行順序

console.log 1 var promise new promise resolve promise.then val console.log val settimeout 0 console.log 5 12 534遇到巨集任務,先執行巨集任務,將巨集任務放入event queue,然後再執...

javascript事件總結

onabort 影象載入被中斷 onblur 失去焦點 onclick 滑鼠單擊某個物件 onchange 使用者改變內容 ondbclick 滑鼠雙擊某個物件 onerror 當載入文件或物件時發生某個錯誤 onfocus 獲得焦點 onkeydown 鍵盤的鍵被按下 onkeypress 鍵盤的...

JavaScript事件委託

js事件處理程式 首先,為什麼要用事件委託,用一段 解釋下 如上面 如果要新增事件處理程式,我們一般做法是,給list1 list2 list3這個3個li元素分別新增事件處理程式,但是有沒有想過,如果元素很多呢,我們還是一直用這樣的方法新增嗎?當然是不可能的,這樣子,非累死程式設計師不可 這個時候...