bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

JavaScript的運行原理怎么掌握

這篇文章主要講解了“JavaScript的運行原理怎么掌握”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“JavaScript的運行原理怎么掌握”吧!

目前累計服務客戶成百上千,積累了豐富的產品開發及服務經驗。以網站設計水平和技術實力,樹立企業形象,為客戶提供成都網站制作、成都網站設計、網站策劃、網頁設計、網絡營銷、VI設計、網站改版、漏洞修補等服務。創新互聯建站始終以務實、誠信為根本,不斷創新和提高建站品質,通過對領先技術的掌握、對創意設計的研究、對客戶形象的視覺傳遞、對應用系統的結合,為客戶提供更好的一站式互聯網解決方案,攜手廣大客戶,共同發展進步。

了解JavaScript 是如何運行的,以及的它的運行機制,首先,我們要了解瀏覽器的內核:

瀏覽器內核

了解過的都知道:不同的瀏覽器是由不同的內核組成,那么有哪些內核以及我們常用的瀏覽器都使用了那些內核:

  • Gecko:早期被Netscape和Mozilla Firefox瀏覽器瀏覽器使用;

  • Trident:微軟開發,被IE4~IE11瀏覽器使用,但是Edge瀏覽器已經轉向Blink;

  • Webkit:蘋果基于KHTML開發、開源的,用于Safari,Google Chrome之前也在使用;

  • Blink:是Webkit的一個分支,Google開發,目前應用于Google Chrome、Edge、Opera等;

所謂瀏覽器內核,指的是瀏覽器的排版引擎,即瀏覽器引擎。引擎的工作執行流程如下:

JavaScript的運行原理怎么掌握

但是在這個執行過程中,HTML解析的時候遇到了JavaScript標簽,應該怎么辦呢?
會停止解析HTML,而去加載和執行JavaScript代碼;

當然,為什么不直接異步去加載執行JavaScript代碼,而要在這里停止掉呢?

所以瀏覽器希望將HTML解析的DOM和JavaScript操作之后的DOM放到一起來生成最終的DOM樹,而不是頻繁的去生成新的DOM樹;

那么,JavaScript代碼由誰來執行呢?
答案:JavaScript 引擎

JavaScript 引擎

為什么需要JavaScript引擎呢?

  • 事實上我們編寫的JavaScript無論你交給瀏覽器或者Node執行,最后都是需要被CPU執行的;

  • 但是CPU只認識自己的指令集,實際上是機器語言,才能被CPU所執行;

  • 所以我們需要JavaScript引擎幫助我們將JavaScript代碼翻譯成CPU指令來執行;

常見的JavaScript 引擎有哪些呢?

  • SpiderMonkey:第一款JavaScript引擎,由Brendan Eich開發(也就是JavaScript作者);

  • Chakra:微軟開發,用于IE瀏覽器;

  • JavaScriptCore:WebKit中的JavaScript引擎,Apple公司開發;

  • V8:Google開發的強大JavaScript引擎,也幫助Chrome從眾多瀏覽器中脫穎而出;(V8 是一個強大的JavaScript 引擎)

V8 引擎

  • V8是用C ++編寫的Google開源高性能JavaScript和WebAssembly引擎,它用于Chrome和Node.js等。

  • 它實現ECMAScript和WebAssembly,并在Windows 7或更高版本,macOS 10.12+和使用x64,IA-32,ARM或MIPS處理器的Linux系統上運行。

  • V8可以獨立運行,也可以嵌入到任何C ++應用程序中。

V8 引擎執行JavaScript 代碼的原理:

Parse模塊會將JavaScript代碼轉換成AST(抽象語法樹),這是因為解釋器并不直接認識- JavaScript代碼;

  • 如果函數沒有被調用,那么是不會被轉換成AST的;

  • Parse的V8官方文檔:https://v8.dev/blog/scanner

Ignition是一個解釋器,會將AST轉換成ByteCode(字節碼)

  • 同時會收集TurboFan優化所需要的信息(比如函數參數的類型信息,有了類型才能進行真實的運算);

  • 如果函數只調用一次,Ignition會執行解釋執行ByteCode;

  • Ignition的V8官方文檔:https://v8.dev/blog/ignition-interpreter

TurboFan是一個編譯器,可以將字節碼編譯為CPU可以直接執行的機器碼;

  • 如果一個函數被多次調用,那么就會被標記為熱點函數,那么就會經過TurboFan轉換成優化的機器碼,提高代碼的執行性能;

  • 但是,機器碼實際上也會被還原為ByteCode,這是因為如果后續執行函數的過程中,類型發生了變化(比如sum函數原來執行的是number類型,后來執行變成了string類型),之前優化的機器碼并不能正確的處理運算,就會逆向的轉換成字節碼;

  • TurboFan的V8官方文檔:https://v8.dev/blog/turbofan-jit

感謝各位的閱讀,以上就是“JavaScript的運行原理怎么掌握”的內容了,經過本文的學習后,相信大家對JavaScript的運行原理怎么掌握這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創新互聯,小編將為大家推送更多相關知識點的文章,歡迎關注!

當前文章:JavaScript的運行原理怎么掌握
文章出自:http://vcdvsql.cn/article32/iijppc.html

成都網站建設公司_創新互聯,為您提供關鍵詞優化網站營銷動態網站微信小程序虛擬主機App設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設