什麼是 JavaScript 事件循環?
在 JavaScript 中,事件循環是一種使用非阻塞 I/O 控製程式碼、事件或訊息執行的機制。這提供了一種在 JavaScript 中進行非阻塞或非同步操作的方法。
1.單線
JavaScript 是單線程的,這意味著它一次執行一項任務。單線程,因此,JavaScript 執行的一個線程就是所謂的「主線程」。
2.呼叫堆疊
它是 JavaScript 追蹤函數呼叫的資料結構。函數呼叫被壓入堆疊。當它返回時,它被刪除。當它為空時,JavaScript 就準備好要處理下一步了。它通常也被稱為“主線程”。
3.堆
這是 JavaScript 儲存物件和變數的地方。它用於動態記憶體分配。
4.事件隊列
等待執行的訊息或任務佇列。當任務被加入到佇列中時,它會等待呼叫堆疊為空才能執行。
5.事件循環
它是不斷監視呼叫堆疊和事件佇列的東西。如果呼叫堆疊為空,則會將任務從事件佇列移至呼叫堆疊並執行它們。
流程
回呼函數:當非同步操作完成時,其回呼函數會被推入事件佇列。
事件循環檢查:事件循環現在會依序檢查呼叫堆疊以及事件佇列。如果呼叫堆疊為空,它會從事件佇列中選擇第一個任務並將其推入呼叫堆疊來運行它。
console.log('Start'); setTimeout(() => { console.log('Timeout 1'); }, 1000); setTimeout(() => { console.log('Timeout 2'); }, 500); console.log('End');
請注意,以下步驟將逐步發生:
總結
以上是JavaScript 事件循環的詳細內容。更多資訊請關注PHP中文網其他相關文章!