最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

初學(xué)JavaScript,淺談變量提升

2021-04-17 09:56 作者:光耀三十洲  | 我要投稿

ES6之前我們一般使用var來(lái)聲明變量,提升簡(jiǎn)單來(lái)說(shuō)就是把我們所寫(xiě)的類似于var a = 123;這樣的代碼,聲明提升到它所在作用域的頂端去執(zhí)行,到我們代碼所在的位置來(lái)賦值。

學(xué)習(xí)更多,請(qǐng)點(diǎn)擊:https://www.bilibili.com/video/BV1g84y1F7vS

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1a54y1b7hh

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV17h411U7L7

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1wB4y1A7d2

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1m64y1S7Rx

學(xué)習(xí)更多,請(qǐng)點(diǎn)擊:https://www.bilibili.com/video/BV1g84y1F7vS

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1a54y1b7hh

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV17h411U7L7

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1wB4y1A7d2

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1m64y1S7Rx

2、函數(shù)提升

javascript中不僅僅是變量聲明有提升的現(xiàn)象,函數(shù)的聲明也是一樣;具名函數(shù)的聲明有兩種方式:

學(xué)習(xí)更多,請(qǐng)點(diǎn)擊:https://www.bilibili.com/video/BV1g84y1F7vS

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1a54y1b7hh

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV17h411U7L7

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1wB4y1A7d2

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1m64y1S7Rx

函數(shù)字面量式的聲明與變量提升的結(jié)果是一樣的,函數(shù)只是一個(gè)具體的值; 但是函數(shù)聲明式的提升現(xiàn)象和變量提升現(xiàn)象又不盡相同

先來(lái)個(gè)例子

學(xué)習(xí)更多,請(qǐng)點(diǎn)擊:https://www.bilibili.com/video/BV1g84y1F7vS

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1a54y1b7hh

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV17h411U7L7

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1wB4y1A7d2

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1m64y1S7Rx

  • 編譯階段:(由編譯器執(zhí)行)

  1. 變量和函數(shù)聲明提升到全局執(zhí)行上下文的最頂端:scope對(duì)象里面的數(shù)據(jù):(小結(jié)會(huì)解釋什么是scope對(duì)象)

  • 執(zhí)行階段:(由引擎執(zhí)行,我是這么理解的)

  • 第一個(gè)shoWName()執(zhí)行時(shí):此時(shí)引擎會(huì)詢問(wèn)編譯器是否見(jiàn)過(guò)shoWName()函數(shù),由于此時(shí)第2行代碼中的shoWName還沒(méi)有值(undifined),所以編譯器會(huì)返回5行代碼所聲明的函數(shù),并輸出 ?1 ?(函數(shù)優(yōu)先)

  • 學(xué)習(xí)更多,請(qǐng)點(diǎn)擊:https://www.bilibili.com/video/BV1g84y1F7vS

  • ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1a54y1b7hh

  • ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV17h411U7L7

  • ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1wB4y1A7d2

  • ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1m64y1S7Rx

  • 第二個(gè)shoWName()執(zhí)行時(shí)scope變量發(fā)生改變{shoWName:function () {console.log(2)}},因?yàn)榘凑沾a從上到下的執(zhí)行順序,會(huì)對(duì)變量showName賦值(第二個(gè)showName()出現(xiàn)在賦值代碼后面),接收一個(gè)函數(shù)表達(dá)式,并且把之前聲明的同名函數(shù)表達(dá)式覆蓋

此時(shí)調(diào)用shoWName()會(huì)執(zhí)行覆蓋后的通過(guò)函數(shù)字面量聲明的shoWName()函數(shù)執(zhí)行console.log(2)這句代碼,輸出 2。

小結(jié):

  1. 只有聲明本身會(huì)被提升,而賦值操作不會(huì)被提升。

  2. 函數(shù)聲明會(huì)被提升,但函數(shù)表達(dá)式不會(huì)被提升。

  3. scope 對(duì)象,存放當(dāng)前代碼執(zhí)行上下文中的所有變量的引用

  4. 代碼一定是逐行運(yùn)行的

  5. 分為編譯階段和執(zhí)行階段

  6. 變量提升后,會(huì)給變量設(shè)置默認(rèn)值undefined

學(xué)習(xí)更多,請(qǐng)點(diǎn)擊:https://www.bilibili.com/video/BV1g84y1F7vS

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1a54y1b7hh

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV17h411U7L7

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1wB4y1A7d2

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??https://www.bilibili.com/video/BV1m64y1S7Rx


作者:東理_子龍
鏈接:https://juejin.cn/post/6951244051534659597
來(lái)源:掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。


初學(xué)JavaScript,淺談變量提升的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
民和| 灵璧县| 晋江市| 白山市| 佳木斯市| 西青区| 通许县| 丹阳市| 铜山县| 西盟| 简阳市| 太谷县| 沂水县| 巨野县| 长海县| 永安市| 肃宁县| 开原市| 长岛县| 彰武县| 利津县| 故城县| 乌拉特后旗| 三江| 长寿区| 松江区| 庆城县| 临邑县| 靖宇县| 平度市| 佛坪县| 象山县| 陇南市| 临安市| 仁寿县| 隆尧县| 娄底市| 澳门| 化隆| 蓬溪县| 内丘县|