国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

一起來了解一下JavaScript的預編譯(小結)

瀏覽:87日期:2023-10-03 17:38:00
JS運行三部曲

js運行代碼共分三步

語法分析 預編譯 解釋執行

JavaScript代碼在運行時,首先會進行語法分析,通篇檢查代碼是否存在低級錯誤,然后進行預編譯,整理內部的一個邏輯,最后再開始一行一行的執行代碼

語法分析

代碼在執行之前,系統會通篇掃描一遍,檢查代碼有沒有低級的語法錯誤,比如少寫個大括號。

預編譯預編譯前奏

預編譯發生在函數執行的前一刻。變量未經聲明就賦值,此變量為全局對象所有

a = 3

var b = c = 4

一切聲明的全局變量,全是window的屬性

var a = 1 ===> window.a = 1

預編譯四部曲 創建AO(Activation Object)對象(里面存儲的是函數內部的局部變量) 找形參和變量聲明,將變量和形參名做為AO屬性名,值為undefined 將實參和形參統一 在函數體里面找函數聲明,值賦予函數體

用一個例子來說明一下,也可以自己先給出一個答案,再繼續往下看

function fn(a) { console.log(a); var a = 123; console.log(a); function a() {} console.log(a); var b = function() {}; console.log(b); function d() {} console.log(d)}fn(1);

第一步,創建AO(Activation Object)對象 {}第二步,找形參和變量聲明,將變量和形參名做為AO屬性名,值為undefined

{ a: undefined, b: undefined,}

第三步,將實參和形參統一

{ a: 1, b: undefined,}

第四步,找函數聲明,值賦予函數體

{ a: function a() {}, b: undefined, d: function d() {}}

所以在函數fn執行的前一刻,a、b、d的值如上所示

所以fn(1)執行的結果為

// ƒ a() {}// 123// 123// ƒ () {}// ƒ d() {}

在全局作用域里,預編譯過程有些許不同

創建GO(Global Object)對象(里面存儲的是函數內部的全局變量)GO === window 找形參和變量聲明,將變量和形參名做為GO屬性名,值為undefined 在函數體里面找函數聲明,值賦予函數體解釋執行

一行一行的執行代碼

實踐題

這里有幾個例題,有興趣的可以看一下

function test(a, b) { console.log(a); console.log(b); var b = 234; console.log(b); a = 123; console.log(a); function a() {} var a; b = 234; var b = function() {}; console.log(a); console.log(b);}test(1);

global = 100;function fn() { console.log(global); global = 200; console.log(global); var global = 300;}fn();var global;

function test() { console.log(b); if (a) { var b = 100; } c = 234; console.log(c);}var a;test();a = 10;console.log(c);總結

多數情況下,我們都是采用下面的這種方式來處理預編譯的一個過程

函數聲明,整體提升 變量聲明,聲明提升

若是遇見復雜的情況就只能采用最原始的方式來解決問題了

到此這篇關于一起來了解一下JavaScript的預編譯(小結)的文章就介紹到這了,更多相關JavaScript 預編譯內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 精品国产免费久久久久久 | 久久精品视频在线观看榴莲视频 | 色老头老太做爰视频在线观看 | 日本道综合一本久久久88 | 日韩毛片免费线上观看 | 国产欧美亚洲精品一区 | 国产成人午夜精品免费视频 | 一级毛片成人免费看a | 亚洲国产精品久久久久久 | 国产高清在线看免费视频观 | 欧美精品午夜毛片免费看 | 国产三级久久 | 成人黄色一级视频 | 精品特级一级毛片免费观看 | 欧美搞黄视频 | 91久久精品国产亚洲 | 欧美一级毛片免费播放器 | a级午夜毛片免费一区二区 a级性生活视频 | 免费观看a黄一级视频 | 久草视频免费在线看 | 免费v片视频在线观看视频 免费v片在线观看 | 五月激激激综合网色播免费 | 国产日产高清欧美一区二区三区 | 免费一级毛片在播放视频 | 日韩制服诱惑 | 一级特色大黄美女播放网站 | 国产网站免费 | 加勒比色综合久久久久久久久 | 久久www免费人成_看片高清 | 中文字幕精品视频 | 久久精品国内一区二区三区 | 日本欧美大片 | 欧美特级视频 | 一区二区三区伦理 | 国产精品久久久久久麻豆一区 | 韩国毛片免费播放 | 99热精品在线观看 | 欧美亚洲网站 | 91精品久久一区二区三区 | 国产美女拍拍拍在线观看 | 天天se天天cao综合网蜜芽 |