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

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

一道javascript 題目

一道javascript 題目

開滿天機 2019-04-13 08:45:20
varfoo=1;functionbar(){foo=10;return;functionfoo(){}}bar();console.log(foo);//為什么是1而不是10一個類似的題目http://segmentfault.com/q/1010000000600770
查看完整描述

2 回答

?
尚方寶劍之說

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

varfoo=1;
functionbar(){
foo=10;
return;
functionfoo(){}
}
bar();
console.log(foo);//為什么是1而不是10
先分析一下每步流程:
第一步:varfoo=1;
全局變量foo被初始化賦值成1。
第二步:執(zhí)行bar();方法。
第三步:bar()方法里,函數(shù)聲明functionfoo(){}優(yōu)先處理,這里JavaScript解析語法時(在運行之前)函數(shù)優(yōu)先于一切。所以foo被初始化賦值為function(){};
第四步:執(zhí)行foo=10;這里制造了一個假象,認為沒有用var聲明指向的是外層foo=1;。其實不是。而是先在自身函數(shù)體里找有沒有foo聲明,找到之前聲明的functionfoo(){};賦值成10,只是局部變量的值改寫。
第五步:輸出foo,這時找的是全局變量varfoo=1;輸出1。
                            
查看完整回答
反對 回復(fù) 2019-04-13
  • 2 回答
  • 0 關(guān)注
  • 358 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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