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

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

淺析JavaScript預編譯和暗示全局變量

瀏覽:118日期:2023-10-15 16:36:56

1. 暗示全局變量

未聲明的變量稱為暗示全局變量。

var a = 1; //函數體外聲明的變量稱為全局變量b = 2; // 無論函數體外或函數體內未聲明的變量都稱為暗示全局變量function fn() { var c = 3; //函數體內聲明的變量稱為局部變量 d = 4; // 暗示全局變量}fn(); // 若不執行函數,則不會進行函數預編譯,d 就不會提升為全局變量console.log(c); // error: c is not definedconsole.log(d); // 4

2. JavaScript執行過程

1. 語法分析,若存在低級語法錯誤,則不編譯執行;2. 預編譯,包括變量聲明提前和函數聲明提前;3. 解釋執行,解釋一行,執行一行。

3. 預編譯

預編譯可分為全局預編譯和函數預編譯。

預編譯可分為全局預編譯和函數預編譯。

1. 在js腳本加載之后,會先通篇檢查是否存在低級錯誤;2. 在語法檢測完之后,便進行全局預編譯;3. 在全局預編譯之后,就解釋一行,執行一行;4. 當執行到函數調用那一行,會先進行函數預編譯,再往下執行。

全局預編譯:

1. 創建全局對象GO(window對象);2. 變量聲明提前,將所有變量的聲明放到最前面,作為GO對象的屬性,并賦值undefined,若存在變量名相同,只聲明一個;3. 函數聲明提前,將函數聲明也放到最前面,作為GO對象的屬性,若函數名與變量名相同,變量名會被函數名覆蓋,值是函數體。這就是函數定義放到函數調用之前或之后都可以的原因。

函數預編譯:

1. 在函數執行前的一瞬間,函數預編譯閃亮登場;2. 先創建一個AO對象(Active Object);3. 將形參和變量聲明提前,賦值undefined,作為AO的屬性;4. 將實參賦值給形參;5. 函數聲明提前,值為函數體,作為AO的屬性。

栗子:

var a = 1;function b(c){ console.log(c); var c = 2; console.log(c); function c() {} var d = 3; function e() {}}b(4);

先分析全局預編譯,

創建GO對象,GO = {}; 變量聲明提前

// 偽代碼GO = { a = undefined} 函數聲明提前

// 偽代碼GO = { a = undefined b = f b(c) { console.log(c); ... }}

再分析函數預編譯,

創建AO對象,AO = {}; 形參和變量聲明提前;

// 偽代碼AO = { c = undefined // 與變量名相同,只聲明一個d = undefined} 將實參賦值給形參;

// 偽代碼AO = { c = 4 // b(4),傳入的實參是4d = undefined} 函數聲明提前

// 偽代碼AO = { c = f c() {} // 函數名會覆蓋變量名d = undefinede = f e() {}}

所以第一次打印變量c的時候,是輸出函數體,而不是實參4。

以上就是淺析JavaScript預編譯和暗示全局變量的詳細內容,更多關于JavaScript預編譯和暗示全局變量的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 久草视频国产 | 京东一热本色道久久爱 | 玖草在线视频 | 三级毛片免费看 | 亚洲在线成人 | 一级毛片真人免费播放视频 | 99国产精品高清一区二区二区 | 久久久久久毛片免费播放 | 中文国产日韩欧美视频 | 亚洲精品日本 | 国产欧美一区二区三区在线看 | 特级毛片aaaa免费观看 | 国产一区二区三区亚洲欧美 | 亚洲成人综合网站 | 成人做爰视频www视频 | 永久免费看毛片 | 亚洲作爱视频 | 国产二区自拍 | 日本黄色大片在线播放视频免费观看 | 新版天堂中文资源官网 | 黄网在线观看免费网站台湾swag | 欧美最爽乱淫视频播放黑人 | 精品视频国产狼人视频 | 91九色视频无限观看免费 | 亚洲国产成人精品激情 | 亚洲精品视频久久 | 99国产精品久久久久久久日本 | 精品视频一区二区三三区四区 | 女让张开腿让男人桶视频 | 欧美成人免费网在线观看 | 亚洲精品久久久成人 | 中日韩精品视频在线观看 | 亚洲一区欧洲一区 | 国产aaaaa一级毛片 | 国产精品视频久久久久久 | 成人国产亚洲欧美成人综合网 | 欧美一做特黄毛片 | 成人在线视频免费看 | 性做久久久久久 | 精品成人在线视频 | 一级毛片在线播放免费 |