gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

es6 import會變量提升嗎

ES6 import會產(chǎn)生變量提升的現(xiàn)象。變量提升是將變量聲明提升到它所在作用域的最開始的部分。js要經(jīng)歷編譯跟執(zhí)行階段,在編譯階段的時候,會搜集所有的變量聲明并且提前聲明變量,而其他的語句都不會改變他們的順序,因此,在編譯階段的時候,第一步就已經(jīng)執(zhí)行了,而第二部則是在執(zhí)行階段執(zhí)行到該語句的時候才執(zhí)行。

es6 import會變量提升嗎

本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。

變量提升

JavaScript是單線程語言,所以執(zhí)行肯定是按順序執(zhí)行。但是并不是逐行的分析和執(zhí)行,而是一段一段地分析執(zhí)行,會先進(jìn)行編譯階段然后才是執(zhí)行階段。在編譯階段階段,代碼真正執(zhí)行前的幾毫秒,會檢測到所有的變量和函數(shù)聲明,所有這些函數(shù)和變量聲明都被添加到名為Lexical Environment的JavaScript數(shù)據(jù)結(jié)構(gòu)內(nèi)的內(nèi)存中。所以這些變量和函數(shù)能在它們真正被聲明之前使用。

先從一個簡單的例子來入手:

 a = 2;  var a;  console.log(a);
登錄后復(fù)制

以上的代碼會輸出什么,假如這段代碼是從上到下執(zhí)行的話,肯定會輸出undefined,然而JavaScript卻不是自上而下執(zhí)行的語言。 這段代碼的輸出結(jié)果是2,意外嗎?那么,為什么會這樣,這個關(guān)鍵點就在于–變量提升。他會將當(dāng)前作用域的所有變量的聲明,提升到程序的頂部,因此,上面的代碼等價于以下代碼,這樣是不是就能明白一些了?

 var a;  a = 2;  console.log(a);
登錄后復(fù)制

那么我們再看一個例子:

 console.log(a);  var a = 2;
登錄后復(fù)制

這段代碼又會輸出什么?輸出2嗎? 其實這段代碼會輸出undefined。這又是為什么呢?剛剛說過,JavaScript會將變量的聲明提升到頂部,但是賦值語句是不會提升的,對于js來說,var a = 2是分為兩步解析的:

var a; a = 2;
登錄后復(fù)制

而js只會提升 var a 這句,所以剛剛的語句等價于:

 var a;  console.log(a);  a = 2;
登錄后復(fù)制

那么,為什么會有變量提升?

為什么會出現(xiàn)變量提升這個現(xiàn)象呢? 因為js與其他語言一樣,都要經(jīng)歷編譯跟執(zhí)行階段。而js在編譯階段的時候,會搜集所有的變量聲明并且提前聲明變量,而其他的語句都不會改變他們的順序,因此,在編譯階段的時候,第一步就已經(jīng)執(zhí)行了,而第二部則是在執(zhí)行階段執(zhí)行到該語句的時候才執(zhí)行。

ES6的import變量提升

ES6 import 會產(chǎn)生變量提升的現(xiàn)象。

比如以下的測試代碼,

// a.js console.log('I am a.js...') import { foo } from './b.js'; console.log(foo); // b.js console.log('I am b.js...') export let foo = 1;
登錄后復(fù)制

運行a.js,

// node -r esm a.js  I am b.js... I am a.js... 1
登錄后復(fù)制

打印的結(jié)果是先出現(xiàn)‘I am b.js…’,然后再出現(xiàn)‘I am a.js…’,這就是變量提升的現(xiàn)象。

這是因為 ES6 在語言標(biāo)準(zhǔn)層面上實現(xiàn)了模塊功能,所以當(dāng)對a.js預(yù)編譯時發(fā)現(xiàn)關(guān)鍵詞import后,先去加載b.js,所以先輸出‘I am b.js…’。

整個流程是,

es6 import會變量提升嗎

變量提升的產(chǎn)生,其實與變量對象的創(chuàng)建過程有關(guān)。

變量對象創(chuàng)建過程

變量對象(Variable Object)的創(chuàng)建,依次經(jīng)歷以下幾個步驟。

es6 import會變量提升嗎

  • 檢查當(dāng)前上下文的函數(shù)聲明,也就是使用function關(guān)鍵字聲明的函數(shù)。在變量對象中以函數(shù)名建立一個屬性,屬性值為指向該函數(shù)所在內(nèi)存地址的引用。如果函數(shù)名的屬性已經(jīng)存在,那么該屬性將會被新的引用所覆蓋。

  • 檢查當(dāng)前上下文中的變量聲明,每找到一個變量聲明,就在變量對象中以變量名建立一個屬性,屬性值為undefined。如果該變量名的屬性已經(jīng)存在,為了防止同名的函數(shù)被修改為undefined,則會直接跳過,原屬性值不會被修改。

function聲明會比var聲明優(yōu)先級更高一點。

function test() {   console.log(a);   console.log(foo());    var a = 1;   function foo() {     return 2;   } }  test();
登錄后復(fù)制

直接從test()的執(zhí)行上下文開始理解。

// 創(chuàng)建過程 testEC = {     // 變量對象     VO: {},     // 作用域鏈     scopeChain: {} }  // VO 為 Variable Object 的縮寫,即變量對象 VO = {     arguments: {...},     foo: <foo reference>    // 表示foo的地址引用     a: undefined }
登錄后復(fù)制

test()執(zhí)行的結(jié)果是,

// node -r esm demo01.js  undefined 2
登錄后復(fù)制

其實,上面的代碼demo01.js,變成了這樣的執(zhí)行順序,

function test() {     function foo() {         return 2;     }     var a;     console.log(a);     console.log(foo());     a = 1; } test();
登錄后復(fù)制

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
成人性生活视频免费看| 久久久久久免费看| 玩弄japan白嫩少妇hd| 国产va亚洲va在线va| 性欧美18一19内谢| 午夜福利123| 最新中文字幕久久| 免费的av在线| 国产一级爱c视频| 91猫先生在线| 日本999视频| 亚洲精品20p| 午夜啪啪免费视频| 午夜啪啪福利视频| 青青草国产免费| 国产免费黄视频| 成人性生生活性生交12| 在线观看亚洲色图| 天堂网成人在线| 久操手机在线视频| 国产二区视频在线播放| 无码无遮挡又大又爽又黄的视频| 97在线播放视频| www.com黄色片| 黄黄视频在线观看| 国产一区二区网| 亚洲一区二区三区四区五区| 国产奶头好大揉着好爽视频| 久久久久久久香蕉| 男人的天堂日韩| 亚洲成人动漫在线| 国模杨依粉嫩蝴蝶150p| 亚洲在线观看网站| 99精品人妻少妇一区二区| 2025韩国理伦片在线观看| 在线观看av的网址| 99热这里只有精品在线播放| 蜜桃视频成人在线观看| 无码人妻丰满熟妇区毛片| 1314成人网| 日本久久久精品视频| 91视频福利网| 国产精品入口免费软件| 国产制服91一区二区三区制服| 日本三级免费网站| 国产精品日韩三级| 免费成人黄色大片| 日日摸天天爽天天爽视频| 成人性做爰片免费视频| 日韩av在线中文| 国产中文字幕二区| 粉嫩av一区二区三区天美传媒| 成年人视频在线免费| 日韩极品视频在线观看| 免费不卡av网站| 伊人成人222| 色婷婷综合网站| 精品www久久久久奶水| www.在线观看av| www国产免费| 男人j进女人j| 青青草免费在线视频观看| 在线观看免费不卡av| 在线免费观看av的网站| 国产日韩成人内射视频| 激情婷婷综合网| 爆乳熟妇一区二区三区霸乳| 欧美国产亚洲一区| 99精品视频在线看| 91黄色小网站| 国产情侣av自拍| 黄色aaa级片| 国产亚洲视频一区| 日韩视频在线观看一区二区三区| 午夜免费看视频| 手机在线免费毛片| 黄色污污在线观看| 免费高清一区二区三区| 99视频在线免费播放| 国产一区二区视频免费在线观看| 免费在线激情视频| 污网站免费在线| 久久天天东北熟女毛茸茸| 国产在线xxxx| 国产裸体舞一区二区三区| 性欧美videossex精品| 九九热精品国产| av免费看网址| 91国产精品视频在线观看| 国产三级精品三级在线| 97在线免费视频观看| 久久婷婷五月综合色国产香蕉| 男女啪啪网站视频| 97超碰人人看| www.玖玖玖| 日韩av福利在线观看| 欧美一区二区三区爽大粗免费| 亚洲福利精品视频| 久青草视频在线播放| 亚洲成人av免费看| 男女猛烈激情xx00免费视频| 午夜国产一区二区三区| 2018中文字幕第一页| 成人在线激情网| 丁香色欲久久久久久综合网| chinese少妇国语对白| 强开小嫩苞一区二区三区网站| 日韩人妻精品无码一区二区三区| 国产乱叫456| 国产又黄又猛又粗又爽的视频| 一本色道久久88亚洲精品综合| 女人喷潮完整视频| 激情五月婷婷六月| 黄色网址在线免费看| 999精品网站| 欧美综合在线播放| www.国产在线播放| 一道本在线观看视频| 成年网站免费在线观看| 不卡影院一区二区| 男人的天堂狠狠干| 久久精品无码中文字幕| 成年网站免费在线观看| 亚洲视频在线a| 国产在线观看福利| 18岁网站在线观看| 妺妺窝人体色777777| 91黄色在线看| 97干在线视频| av网站手机在线观看| 天堂а√在线中文在线| 中国一级黄色录像| 国产盗摄视频在线观看| 国产树林野战在线播放| 久久久久xxxx| 亚洲天堂av免费在线观看| 成人综合久久网| 玖玖爱视频在线| www.久久久久久久久久久| а 天堂 在线| 中文字幕在线乱| av在线免费观看国产| 2019日韩中文字幕mv| 国产免费黄色小视频| 给我免费播放片在线观看| 日本福利视频一区| 茄子视频成人免费观看| 91福利国产成人精品播放| 小明看看成人免费视频| 黄色一级片网址| 精品无码国产一区二区三区av| 久久综合久久网| 三级a在线观看| 国产精品无码乱伦| 国产一区二区四区| 久久久精品麻豆| 日本成人性视频| 欧美成人高潮一二区在线看| 欧美日韩在线中文| 亚洲成人av免费看| 国产一二三四区在线观看| 欧美一级特黄aaa| 中文字幕一区二区三区四区五区人| 国模私拍视频在线观看| 久久精品国产99久久99久久久| 在线观看污视频| 我要看一级黄色大片| 少妇高潮流白浆| 国产精品久久a| 国内外成人激情视频| 日韩av片在线看| av中文字幕网址| 免费观看亚洲视频| 91亚洲免费视频| 欧美极品少妇无套实战| 国产精品人人妻人人爽人人牛| 青青草原播放器| 成人午夜激情av| www.av毛片| 成人高清在线观看视频| 日韩精品一区二区三区不卡 | www.51色.com| 国产一区亚洲二区三区| 日韩极品视频在线观看| 久久成年人网站| 99久久激情视频| 欧美啪啪免费视频| 狠狠精品干练久久久无码中文字幕 | 欧洲金发美女大战黑人| 亚洲另类第一页| 别急慢慢来1978如如2| 欧美亚洲一二三区| 国产av天堂无码一区二区三区| 浴室偷拍美女洗澡456在线| 在线视频观看91| 午夜不卡福利视频| 亚洲天堂av一区二区| 五月天视频在线观看| 亚洲欧美手机在线| 亚洲欧洲日本精品|