久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

es6 import會變量提升嗎

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

es6 import會變量提升嗎

本教程操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。

變量提升

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

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

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

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

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

那么我們再看一個例子:

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

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

var a; a = 2;
登錄后復制

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

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

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

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

ES6的import變量提升

ES6 import 會產生變量提升的現象。

比如以下的測試代碼,

// 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;
登錄后復制

運行a.js,

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

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

這是因為 ES6 在語言標準層面上實現了模塊功能,所以當對a.js預編譯時發現關鍵詞import后,先去加載b.js,所以先輸出‘I am b.js…’。

整個流程是,

es6 import會變量提升嗎

變量提升的產生,其實與變量對象的創建過程有關。

變量對象創建過程

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

es6 import會變量提升嗎

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

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

function聲明會比var聲明優先級更高一點。

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

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

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

test()執行的結果是,

// node -r esm demo01.js  undefined 2
登錄后復制

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

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

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
日韩国产在线观看一区| 国产精品亚洲综合久久| 久久av一区| 国产精品v一区二区三区| 亚洲国产欧美日本视频| 亚洲一区二区毛片| 电影91久久久| 日韩 欧美一区二区三区| 久久亚洲专区| 国产精品欧美在线观看| 午夜欧美视频| 精品1区2区3区4区| 日韩欧美中文字幕电影| 精品免费视频| 91久久国产| 免费在线观看精品| 国产成人精品福利| 亚洲综合丁香| 国产美女精品视频免费播放软件| 日韩毛片视频| 综合欧美亚洲| 捆绑调教日本一区二区三区| 美女精品网站| 黄色网一区二区| 视频一区欧美日韩| 国产一区二区三区日韩精品| 一区在线免费观看| 国产探花在线精品| 亚洲国产不卡| 欧美激情在线精品一区二区三区| 激情欧美丁香| 美女视频网站久久| 红桃视频国产一区| 日本不卡一二三区黄网| 成人综合一区| 一区二区国产在线观看| 免费看av不卡| 日韩av不卡在线观看| 久久免费高清| 久久99青青| a国产在线视频| 国产农村妇女精品一二区| 国产v综合v| 日本在线高清| 97精品在线| 精品美女视频| 国产精品美女午夜爽爽| 日韩av黄色在线| 在线视频亚洲欧美中文| 亚洲自啪免费| 麻豆久久精品| 日韩专区欧美专区| 在线综合亚洲| 激情91久久| 99国产一区| 西西人体一区二区| 亚洲一区成人| 午夜一级久久| 中文无码久久精品| 免费成人性网站| 久久亚洲视频| | 久久精品国产99久久| 成人国产精品| 国产美女高潮在线| 亚洲www免费| 久久久成人网| 99精品在线| 蜜桃成人av| 午夜日韩av| 美女国产一区| 日韩精品一区二区三区中文在线| 日本不卡中文字幕| 91精品国产经典在线观看| 日本不卡一区二区| 国产精品一区二区三区www| 国产精品一区二区三区av| 91嫩草精品| 你懂的网址国产 欧美| 九九九精品视频| 中文字幕在线看片| 久久久久国产精品一区三寸| 91精品国产成人观看| 亚洲免费激情| 午夜精品福利影院| 国产精品久久久久9999高清| 久久久91麻豆精品国产一区| а√天堂8资源中文在线| 亚洲高清不卡| 亚洲日韩中文字幕一区| 欧美精品中文字幕亚洲专区| 欧美国产极品| 色婷婷色综合| 亚洲香蕉网站| 亚洲日本欧美| 久久不见久久见中文字幕免费 | 日韩在线欧美| 亚洲大片在线| 亚洲欧洲午夜| av一区二区高清| 狠狠久久伊人| 国产精品宾馆| 里番精品3d一二三区| 伊人影院久久| 999国产精品| 9999国产精品| 高清一区二区三区| 日韩中文在线播放| 欧美手机在线| 三级欧美韩日大片在线看| 一区二区三区国产盗摄| 日本午夜精品视频在线观看| 日韩专区欧美专区| 99xxxx成人网| 国产精品试看| 久久亚洲二区| 精品高清久久| 欧美精品97| 日韩国产激情| 亚洲在线电影| 亚洲一区欧美| 亚洲青青久久| 不卡在线一区二区| 国产区精品区| 婷婷激情久久| 欧美日韩一区二区三区不卡视频| а√天堂8资源中文在线| 视频一区国产视频| 日韩综合在线| 亚洲欧美网站在线观看| 国产成人免费av一区二区午夜| 亚洲主播在线| 国产a久久精品一区二区三区| 亚洲主播在线| 激情久久一区二区| 中文日韩欧美| 精品一区二区三区中文字幕在线| 亚洲一区欧美二区| 精品国产精品久久一区免费式| 国产女优一区| 日韩成人a**站| 亚洲精品影视| 韩国精品主播一区二区在线观看| 日韩**一区毛片| 欧美午夜精品一区二区三区电影| 国产精品porn| 国产一区二区精品| 国产精品乱战久久久| 欧美精品一卡| 国产欧美日韩一级| 亚洲午夜精品久久久久久app| 国产精品亲子伦av一区二区三区| 黄色在线一区| 四虎国产精品免费观看| 亚州av日韩av| 91精品电影| 国产精品精品| 日本欧美一区| 久久夜色精品| 久久国产毛片| 久久精品女人| 久久国产三级| 免费在线视频一区| 久久天堂成人| 国产一区福利| 无码日韩精品一区二区免费| 黄色成人在线网址| 日韩电影免费在线观看| 国产极品久久久久久久久波多结野| 免费久久99精品国产自在现线| 国产 日韩 欧美一区| 老司机免费视频一区二区三区| 亚洲精品乱码日韩| 伊人影院久久| 久久国产亚洲| 日韩av在线播放网址| 国产精品一级| 日韩av成人高清| 亚洲永久精品唐人导航网址| 尹人成人综合网| 欧美日韩视频网站| 首页国产精品| 久久精品国产99| 国产一级成人av| 日韩欧美美女在线观看| 三级一区在线视频先锋| 激情91久久| 欧美在线资源| 在线精品视频在线观看高清| 色吊丝一区二区| а√在线中文在线新版| 国产不卡精品| 精品三级久久久| 美腿丝袜亚洲三区| 久久国产精品免费一区二区三区| 亚洲视频国产| 99国产精品| 日韩天堂av| 亚洲一区亚洲| 午夜在线精品偷拍|