JS 忍者第二章筆記
JS 忍者第二章筆記
第二章 Dom 建構和 Web 生命週期
描述了 DOM 結構與 Web 生命週期
其中比較重要的點是
- 當後端生成 Html 於前端瀏覽器執行產生 DOM 時遇到
<script>
標籤會暫停 DOM 並優先執行 JS 內容 - 如果將不對的標籤放在不對的位置,DOM 生成時會偷偷幫你修改回正確節點位置
Q&A
- 客戶端 Web 應用的兩個生命周期階段是什麼?
Web 在建立時會優先建構 DOM 節點,如果執行過程中遇到 JS 語法則會停止建立 DOM 節點改執行程式碼後,才會繼續建立 DOM 節點。
- 相比將事件處理器賦值給某個特定元素的屬性上,使用 addEventListener 方法來 註冊事件處理器的優勢是什麼?
使用 addEventListener 好處是避免同一個方法被重複賦值而改寫原本的執行函數。
- JavaScript 引擎在同一時刻能處理多少個事件?
JavaScript 引擎是單線程的,意味著在同一時刻它只能處理一個事件。當多個事件同時發生時,它們會被排隊在事件隊列中,JavaScript 引擎會一個接一個地處理這些事件。
- 事件隊列中的事件是以什麼順序處理的?
事件隊列中的事件通常以「先進先出」(FIFO)的順序處理,這意味著最先進入隊列的事件會最先被處理。然而,對於某些特殊的非標準事件,如微任務(microtask)例如 Promise 的回調,會有不同的優先級和處理機制。