成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

js變量提升

BWrong / 2556人閱讀

摘要:參考了上面的三份文檔,寫一下自己對(duì)變量提升的總結(jié)。中執(zhí)行上下文特別是創(chuàng)建和執(zhí)行階段工作方式的一種認(rèn)識(shí)。變量和函數(shù)聲明被從它們?cè)诖a流中出現(xiàn)的位置移動(dòng)到代碼的頂端。不同的情況下聲明的含義存在差別??偨Y(jié)變量必須有創(chuàng)建并且初始化才能正常使用。

Refer:

https://developer.mozilla.org/zh-CN/docs/Glossary/Hoisting
https://www.zhihu.com/question/19636194
https://developer.mozilla.org/zh-CN/docs/Glossary/Hoisting

感謝大牛們對(duì)知識(shí)的慷慨。參考了上面的三份文檔,寫一下自己對(duì)變量提升的總結(jié)。

what:Javascript中執(zhí)行上下文 (特別是創(chuàng)建和執(zhí)行階段)工作方式的一種認(rèn)識(shí)。
how:變量和函數(shù)聲明被從它們?cè)诖a流中出現(xiàn)的位置“移動(dòng)”到代碼的頂端。

不同的情況下***聲明***的含義存在差別。

總結(jié):

變量必須有創(chuàng)建并且初始化才能正常使用。
MDN 上的 “變量可以在聲明之前進(jìn)行初始化和使用” 這句話適用于var,不適用與let
var 變量提升了num的創(chuàng)建和初始化, 把num初始化為undefined
let 變量提升了num的創(chuàng)建,但是沒(méi)有提升初始化,所以拋出異常

提升是以作用域?yàn)閱挝坏?br>

var 提升

let 提升

const 提升

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

函數(shù)表達(dá)式

命名的函數(shù)表達(dá)式,函數(shù)標(biāo)識(shí)符在外圍作用域中也是不可用的

函數(shù)優(yōu)先
函數(shù)會(huì)首先被提升,然后才是變量

后續(xù)的函數(shù)聲明確實(shí)會(huì)覆蓋前一個(gè)函數(shù)聲明

把變量提升拆分三個(gè)部分:創(chuàng)建,初始化,賦值。對(duì)比如下:

如理解有誤:請(qǐng)幫忙指出,萬(wàn)分感謝?。?!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/102856.html

相關(guān)文章

  • js變量提升與函數(shù)提升的機(jī)制

    摘要:所謂變量提升,提升就是為了事先聲明變量。變量提升之后,但其賦值還是留在原本的位置等運(yùn)行到了之后動(dòng)態(tài)賦值,而函數(shù)提升之后直接相當(dāng)于在代碼里抽空了。搞明白這個(gè)例子也就搞懂了作用域中變量和函數(shù)是怎么提升的。 問(wèn)題 showImg(https://segmentfault.com/img/bVJ614?w=222&h=165); 在這個(gè)例子中它應(yīng)該輸出什么?輸出的結(jié)果是6。 showImg(h...

    fasss 評(píng)論0 收藏0
  • JS中的變量提升和函數(shù)提升

    摘要:什么是函數(shù)作用域下的變量提升和函數(shù)提升函數(shù)作用域中也存在變量提升和函數(shù)提升,這個(gè)和全局作用域下的情況是一模一樣的,就是把作用域想成是全局的就可以了。 在js中有一部分比較難以理解,卻也是在筆試過(guò)程中很容易考的,那就是變量提升和函數(shù)提升的問(wèn)題,這篇文章我會(huì)就變量提升和函數(shù)提升的問(wèn)題拓展一下有關(guān)js函數(shù)的知識(shí)點(diǎn),包括作用域的問(wèn)題,后面還會(huì)有一些小練習(xí)來(lái)判斷自己是否真的搞懂了。 作用域 在j...

    zhunjiee 評(píng)論0 收藏0
  • 5分鐘深入了解js變量提升

    摘要:對(duì)于大多數(shù)開(kāi)發(fā)者來(lái)說(shuō),變量提升可以說(shuō)是一個(gè)非常常見(jiàn)的問(wèn)題,但是可能很多人對(duì)其不是特別的了解。如果說(shuō)擁有和一樣的變量提升效果的話,那么應(yīng)該是輸出。而和它們的變量提升的效果是一樣的,也都存在著臨死性死區(qū)的概念。 對(duì)于大多數(shù)js開(kāi)發(fā)者來(lái)說(shuō),變量提升可以說(shuō)是一個(gè)非常常見(jiàn)的問(wèn)題,但是可能很多人對(duì)其不是特別的了解。所以在此,我想來(lái)講一講。 先從一個(gè)簡(jiǎn)單的例子來(lái)入門: a = 2; var a; ...

    tinysun1234 評(píng)論0 收藏0
  • js 變量提升和閉包理解

    摘要:變量的作用域無(wú)非就是兩種全局變量和局部變量。其中內(nèi)部函數(shù)中可以訪問(wèn)外部函數(shù)的變量,是因?yàn)閮?nèi)部函數(shù)的作用域鏈中包含了外部函數(shù)的作用域也可以理解為內(nèi)部函數(shù)的作用范圍輻射到了外部函數(shù)的作用范圍另一方面,在函數(shù)外部自然無(wú)法讀取函數(shù)內(nèi)的局部變量。 以前學(xué)習(xí)的時(shí)候,了解過(guò)變量提升和閉包,但是沒(méi)有深入了解,網(wǎng)上查了資料,這里記錄下,只供參考。部分內(nèi)容引用: https://www.cnblogs.c...

    luoyibu 評(píng)論0 收藏0
  • 原型模式故事鏈(4)--JS執(zhí)行上下文、變量提升、函數(shù)聲明

    摘要:代碼在執(zhí)行之前會(huì)先全局中變量提升函數(shù)聲明。函數(shù)的執(zhí)行上下文,也就是在這個(gè)函數(shù)范圍內(nèi)找到函數(shù)執(zhí)行上下文中函數(shù)范圍內(nèi),所有用聲明的變量。函數(shù)執(zhí)行時(shí),按照?qǐng)?zhí)行位置查找變量作用域只會(huì)向上查找。下一回變量作用域與閉包 上一章:JS的數(shù)據(jù)類型 傳送門:https://segmentfault.com/a/11... 好!話不多少,我們就開(kāi)始吧。對(duì)變量提升和函數(shù)聲明的理解,能讓你更清楚容易的理解,...

    melody_lql 評(píng)論0 收藏0
  • 原型模式故事鏈(4)--JS執(zhí)行上下文、變量提升、函數(shù)聲明

    摘要:代碼在執(zhí)行之前會(huì)先全局中變量提升函數(shù)聲明。函數(shù)的執(zhí)行上下文,也就是在這個(gè)函數(shù)范圍內(nèi)找到函數(shù)執(zhí)行上下文中函數(shù)范圍內(nèi),所有用聲明的變量。函數(shù)執(zhí)行時(shí),按照?qǐng)?zhí)行位置查找變量作用域只會(huì)向上查找。下一回變量作用域與閉包 上一章:JS的數(shù)據(jù)類型 傳送門:https://segmentfault.com/a/11... 好!話不多少,我們就開(kāi)始吧。對(duì)變量提升和函數(shù)聲明的理解,能讓你更清楚容易的理解,...

    zhigoo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<