變量提升問(wèn)題

     var f = function(){
       console.log(scope); //undefined,只提升了變量的聲明
       var scope = 'f';
       console.log('sss',scope);//此時(shí)結(jié)果是'f'
     }
     f(); 

   
     

這是 變量提升問(wèn)題

1. 變量提升,

很簡(jiǎn)單,就是把變量提升提到函數(shù)的top的地方罐柳。我們需要說(shuō)明的是,變量提升 只是提升變量的聲明狰住,并不會(huì)把賦值也提升上來(lái)张吉。
比如:我們定義三個(gè)變量:
  (function(){ 
        var a='One'; 
        var b='Two';
        var c='Three';})()    
實(shí)際上它是這樣子的:
  (function(){
    var a,b,c;
    a='One';
    b='Two';
    c='Three';
})()
這個(gè)時(shí)候就把變量提升了呀。
好催植,我們現(xiàn)在回到第一段code里面肮蛹。為什么會(huì)undefined呢?其實(shí)创南,根據(jù)上面變量提升以及js的作用域(塊級(jí)作用域)的分析伦忠,得知 上面代碼真正變成如下:
var v='Hello World';
(function(){
    var v;
    alert(v);
    v='I love you';
})()
所以,才會(huì)提示說(shuō)“undefined”稿辙。
從這里昆码,我們也學(xué)習(xí)到,我們?cè)趯?xiě)js code 的時(shí)候邻储,我們需要把變量放在函數(shù)級(jí)作用域的頂端赋咽,比如我在上面所舉的例子:var a,b,c;。以防止出現(xiàn)意外吨娜。

2. 函數(shù)提升

函數(shù)提升是把整個(gè)函數(shù)都提到前面去脓匿。
在我們寫(xiě)js code 的時(shí)候,我們有2種寫(xiě)法萌壳,一種是函數(shù)表達(dá)式,另外一種是函數(shù)聲明方式日月。我們需要重點(diǎn)注意的是袱瓮,只有函數(shù)聲明才能被提升。

函數(shù)聲明方式提升【成功】

function myTest(){
    foo();
    function foo(){
        alert("我來(lái)自 foo");
    }
}
myTest();

函數(shù)表達(dá)式方式提升【失敗】

function myTest(){
    foo();// 報(bào)錯(cuò)
    console.log('foo output',foo);// 這個(gè)代表了變量聲明提升爱咬,undefined
    var foo =function foo(){
        alert("我來(lái)自 foo");
    }
}
myTest();
function.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末尺借,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子精拟,更是在濱河造成了極大的恐慌燎斩,老刑警劉巖虱歪,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異栅表,居然都是意外死亡笋鄙,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)怪瓶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)萧落,“玉大人,你說(shuō)我怎么就攤上這事洗贰≌裔” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵敛滋,是天一觀的道長(zhǎng)许布。 經(jīng)常有香客問(wèn)我,道長(zhǎng)绎晃,這世上最難降的妖魔是什么蜜唾? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮箕昭,結(jié)果婚禮上灵妨,老公的妹妹穿的比我還像新娘。我一直安慰自己落竹,他們只是感情好泌霍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著述召,像睡著了一般朱转。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上积暖,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天藤为,我揣著相機(jī)與錄音,去河邊找鬼夺刑。 笑死缅疟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遍愿。 我是一名探鬼主播存淫,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼沼填!你這毒婦竟也來(lái)了桅咆?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤坞笙,失蹤者是張志新(化名)和其女友劉穎岩饼,沒(méi)想到半個(gè)月后荚虚,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡籍茧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年版述,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片硕糊。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡院水,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出简十,到底是詐尸還是另有隱情檬某,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布螟蝙,位于F島的核電站恢恼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏胰默。R本人自食惡果不足惜场斑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望牵署。 院中可真熱鬧漏隐,春花似錦、人聲如沸奴迅。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)取具。三九已至脖隶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間暇检,已是汗流浹背产阱。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留块仆,地道東北人构蹬。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像悔据,于是被迫代替她去往敵國(guó)和親庄敛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容