JS 忍者第二章筆記

JS 忍者第二章筆記


第二章 Dom 建構和 Web 生命週期

描述了 DOM 結構與 Web 生命週期
其中比較重要的點是

  • 當後端生成 Html 於前端瀏覽器執行產生 DOM 時遇到 <script> 標籤會暫停 DOM 並優先執行 JS 內容
  • 如果將不對的標籤放在不對的位置,DOM 生成時會偷偷幫你修改回正確節點位置

Q&A

  1. 客戶端 Web 應用的兩個生命周期階段是什麼?

Web 在建立時會優先建構 DOM 節點,如果執行過程中遇到 JS 語法則會停止建立 DOM 節點改執行程式碼後,才會繼續建立 DOM 節點。

  1. 相比將事件處理器賦值給某個特定元素的屬性上,使用 addEventListener 方法來 註冊事件處理器的優勢是什麼?

使用 addEventListener 好處是避免同一個方法被重複賦值而改寫原本的執行函數。

  1. JavaScript 引擎在同一時刻能處理多少個事件?

JavaScript 引擎是單線程的,意味著在同一時刻它只能處理一個事件。當多個事件同時發生時,它們會被排隊在事件隊列中,JavaScript 引擎會一個接一個地處理這些事件。

  1. 事件隊列中的事件是以什麼順序處理的?

事件隊列中的事件通常以「先進先出」(FIFO)的順序處理,這意味著最先進入隊列的事件會最先被處理。然而,對於某些特殊的非標準事件,如微任務(microtask)例如 Promise 的回調,會有不同的優先級和處理機制。