日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

浏览器解析JavaScript的原理

發布時間:2025/3/15 javascript 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浏览器解析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的原理的全部內容,希望文章能夠幫你解決所遇到的問題。

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