首頁 > web前端 > js教程 > 主體

JS 在幕後是如何運作的?

DDD
發布: 2024-09-18 21:50:02
原創
1015 人瀏覽過

How JS works behind the scenes?

JavaScript 是如何運作的

JavaScript 在單執行緒環境中執行,這表示它一次執行一項任務。它處理執行上下文 (EC) 中程式碼的執行,可以是全域的或功能性的。

全域執行上下文 (GEC)

  • 載入程式碼檔案時建立。

  • GEC 負責設定全域物件(在瀏覽器中是 window)和 this 關鍵字。

  • 在全域範圍內宣告的所有變數和函數都儲存在 Global EC 中。

執行上下文階段

  • 記憶體建立階段:
    在記憶體階段,JavaScript 為變數和函數分配記憶體。
    變數最初被賦予未定義的值,而函數以其完整定義儲存在記憶體中。

  • 執行階段:
    在記憶體分配階段之後,JavaScript 開始逐行執行程式碼。
    變數被賦予實際值並執行函數。

函數執行上下文 (FEC)

  • 每當呼叫函數時,JavaScript 都會特別為此函數建立一個新的執行上下文。

  • 每個函數的執行上下文有兩個階段:

  • 記憶體階段:記憶體分配給局部變量,以及函數內部的函數。

  • 執行階段:執行函數體,變數取得實際值。

  • 執行後,函數的執行上下文被銷毀,釋放記憶體。

退貨聲明
一旦函數到達 return 語句,函數立即退出,並且其執行上下文將從呼叫堆疊中刪除。在 return 語句之後所寫的任何程式碼都不會執行。

呼叫堆疊
JavaScript 使用呼叫堆疊來管理執行上下文。

  • LIFO(後進先出)概念的使用:

  • 當一個函數被呼叫時,它的執行上下文被放置在堆疊的頂部。

  • 一旦函數完成(或回傳),其執行上下文就會從堆疊中彈出。

JavaScript 是單執行緒的

單線程意味著 JavaScript 一次只能執行一個操作,但它仍然可以執行非同步操作,這不是很有趣,在我的下一篇文章中,我們將討論 JavaScript 的這一驚人功能。

以上是JS 在幕後是如何運作的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板