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

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

請教一道js面試題

請教一道js面試題

一個(gè)自執(zhí)行的匿名函數(shù)代碼如下:    var a = 'World!';     (function () {         console.log(window.a); //world;          console.log(a) //undefined;         if (typeof a=== 'undefined') {            var a= 'Jack';            console.log('Goodbye ' + a);         } else {            console.log('Hello ' + a);         }     })();    console.log(a)在js中沒有塊級的概念,函數(shù)里可以訪問到函數(shù)外的全局變量,但函數(shù)外卻無法訪問函數(shù)里面的局部變量,按照這樣理解為什么在自執(zhí)行的匿名函數(shù)里面無法訪問到a,而使用window.a卻可以訪問到,根據(jù)作用域鏈的查找來看,他不應(yīng)該可以往上查找到a嗎?為什么要window.a行?在匿名函數(shù)里面打印this的值也是window來著,他和匿名函數(shù)外是同一個(gè)this之下吧,就有點(diǎn)說不通為什么在匿名函數(shù)里面直接訪問a會是undefined。。。誰能解釋一下匿名函數(shù)中的作用域鏈查找的過程?。?
查看完整描述

1 回答

?
HUH函數(shù)

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

var a = 'World!';
(function () {     console.log(window.a); //world;
     console.log(a) //world;})();console.log(a);

這個(gè)是正常的, 問題出在var a= 'Jack'; Javascript 有一個(gè)規(guī)則叫變量提升, 收這個(gè)規(guī)則的影響實(shí)際上你的代碼變成了這樣:

var a = 'World!';
(function () {     var a;  // var 聲明的變量會被自動的提升到作用域的頂端,這就導(dǎo)致 if 條件拿到的 a 的值是 undifined
     console.log(window.a); //world;
     console.log(a) //undefined;
    if (typeof a=== 'undefined') {
        a= 'Jack';        console.log('Goodbye ' + a);
    } else {        console.log('Hello ' + a);
    }
})();console.log(a)


查看完整回答
反對 回復(fù) 2018-09-24
  • 1 回答
  • 0 關(guān)注
  • 517 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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