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

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

一道關(guān)于Javascript變量作用域的面試題

一道關(guān)于Javascript變量作用域的面試題

慕森卡 2018-08-01 17:19:39
 var a = 100;     (function(){         console.log(a);         var a = 10;     })();輸出的結(jié)果為何是undefined, 如何修改結(jié)果輸出100?
查看完整描述

2 回答

?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊

這段代碼其實(shí)是這樣

var a = 100;
(function(){
    var a;
    console.log(a);
    a = 10;
})();

所以console.log(a)的時(shí)候JS引擎找到了作用域中的變量a,但是其值是undefined

至于你想要讓它輸出100,那方法就多了去了,我提供個(gè)自己的

var a = 100;(function(num){
    var a = num;
    console.log(a);})(a);

把外部作用域的a的值通過參數(shù)傳入函數(shù)中,然后打印出來。這其實(shí)挺有用的。

另外說一下上面同學(xué)的第二個(gè)例子,這個(gè)例子其實(shí)不太好,因?yàn)橛悬c(diǎn)混淆了。

首先if,for之類的操作符不會創(chuàng)建一個(gè)私有的作用域

if (true) {    var b = 1000;
}console.log(b);//1000,在外部也可以調(diào)用,實(shí)際上就是在全局的聲明

然后上面這個(gè)例子

var a = 100;if(true){    console.log(a);    var a = 10;
}

其實(shí)就是

var a = 100;console.log(a);var a = 10;

感覺容易搞混。


查看完整回答
反對 回復(fù) 2018-08-05
  • 2 回答
  • 0 關(guān)注
  • 997 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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