第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關(guān)于js中 var 的變量提升問題

關(guān)于js中 var 的變量提升問題

肥皂起泡泡 2019-02-28 14:15:28
變量提升    var a="show";    function hah(){        alert(a);//undefined        var a=4;        alert(a);//4    }    hah();這個我可以理解function hah(number){        var a="show";        while(number!=0){            alert(a);//show            var a=4;            alert(a);//4            number--;        }    }   hah(1);   為什么這里的a 彈出的是show
查看完整描述

3 回答

?
陪伴而非守候

TA貢獻1757條經(jīng)驗 獲得超8個贊

通俗的給你解釋一下!!


js執(zhí)行順序一般認為從上而下 但是函數(shù)聲明權(quán)重高 提升 var聲明提升 可以理解為

函數(shù) > var >自上到下 

(并不是完整的就是這樣 只是通俗給你解釋上面這套題寫的表達式, 但是這個成立)


然后捋一下  先函數(shù)聲明  聲明hah  然后var 聲明 此時為未定義   然后hah(1)調(diào)用函數(shù),調(diào)用

的時候進行一系列 賦值 操作 自上從下擼代碼就可以了   至于參數(shù)這個number以及下面的判斷

都是迷惑你的, 別被迷惑,去掉也是show  4這樣的結(jié)果


查看完整回答
反對 回復(fù) 2019-03-12
?
溫溫醬

TA貢獻1752條經(jīng)驗 獲得超4個贊

因為在ES6之前,JavaScript沒有塊級作用域,只有全局作用域和函數(shù)作用域。

變量提升的本質(zhì)是將變量聲明提升到它所在作用域的最開始的部分。

瀏覽器環(huán)境 window 是全局作用域,函數(shù) function 包裹的是函數(shù)作用域。

while 不是函數(shù),它沒有作用域。所以,在條件為 true 的時候相當(dāng)于:


function hah(number){

        var a="show";

        alert(a);//show

        var a=4;

        alert(a);//4

        number--;

    }

 hah(1);  

   

再進一步分解,就是:


function hah(number){

    var a;

    var a;

    a = "show";

    alert(a);//show

    a=4;

    alert(a);//4

    number--;

}

hah(1);  


查看完整回答
反對 回復(fù) 2019-03-12
?
慕斯王

TA貢獻1864條經(jīng)驗 獲得超2個贊

等價于


function hah(number){

        var a="show";

        var a;

        while(number!=0){

            alert(a);//show

            a=4;

            alert(a);//4

            number--;

        }

}

hah(1); 


查看完整回答
反對 回復(fù) 2019-03-12
  • 3 回答
  • 0 關(guān)注
  • 1324 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號