日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

浏览器解析JavaScript的原理

發布時間:2025/3/15 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浏览器解析JavaScript的原理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JavaScript的特點一般都知道的就是解釋執行,逐行執行,就是從上到下依次執行。

JavaScript的執行之前,其實還是有一些操作的,只是沒有表現出來

JavaScript的執行過程:

  1、語法檢測  首先是大致查看有沒有基本的語法錯誤。比如說中文、關鍵字錯誤等等

  2、詞法分析(預編譯)

  3、逐行執行

  預編譯的過程

    1、先全局  直接是 script 標簽里的代碼,函數除外

      預編譯時

        1、先模擬一個GO(global object) = { };

        2、分析變量聲明(var)  若有則:GO = {變量名1:undefined,變量名2:undefined,……};若遇到同名的就覆蓋

        3、分析函數聲明(function)  若有則:GO = {變量名1:undefined,變量名2:undefined,……,函數名1:函數體1,函數名2:函數體2,……};若遇到同名的就覆蓋

        4、逐行執行  有賦值就賦值到GO里相應的屬性

    2、再局部  在逐行執行時 若遇到函數調用,該函數會生成自己的作用域AO(active object) = { }

        1、模擬一個AO = { }

        2、分析參數  若有則:AO = {形參 1: 實參1,形參 2: 實參2,…… }

        3、分析變量聲明  若有則:AO = {形參 1: 實參1,形參 2: 實參2,…… 變量名1:undefined,變量名2:undefined,……};若遇到同名的就跳過

        4、分析函數聲明  若有則:AO = {形參 1: 實參1,形參 2: 實參2,…… 變量名1:undefined,變量名2:undefined,……,函數名1:函數體1,函數名2:函數體2,……};若遇到同名的就覆蓋

        5、逐行執行  有賦值就賦值到AO相應的屬性,若遇到AO里沒有的要賦值的,就向上一級找,一直找到GO,若GO沒有,就添加到GO。

    基礎步驟就是這,一步一步的來,就沒有什么大問題。

?

?

?

?

突然想到這個問題,然后找了一下,覺得介紹的比較通俗易懂----------------------------------》傳送陣:https://www.cnblogs.com/long-z/p/10136657.html

轉載于:https://www.cnblogs.com/jockr/p/11131071.html

總結

以上是生活随笔為你收集整理的浏览器解析JavaScript的原理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。