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

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

一個(gè)沒(méi)有理解面試題

一個(gè)沒(méi)有理解面試題

肥皂起泡泡 2018-08-01 12:23:24
 var tt = 'aa';     function test(){        alert(tt);               var tt = 'dd';        alert(tt);            }      test();為什么第一個(gè)彈出undifine呢?又: var tt = 'aa'; function test(){   alert(tt);     //var tt = 'dd';   //alert(tt);         }    test();彈出aa?求各位大神解答下
查看完整描述

2 回答

?
慕娘9325324

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

這樣是全局的:

var tt = 'aa';function test() {
    alert(tt);
}test();

這是你的例子:

var tt = 'aa';function test() {
    alert(tt);    
    var tt = 'dd';
    alert(tt);
}
test();

在函數(shù)內(nèi)部使用var聲明變量,是局部的。優(yōu)先級(jí)高于函數(shù)外部的全局變量。
這個(gè)說(shuō)明js解釋器的解析順序,盡管你的alert(tt)var tt = 'dd'前面,但是它還是認(rèn)為你是在內(nèi)部定義了一個(gè)局部變量。

function test() {    
var tt;
    alert(tt);
    tt = 'dd';
    alert(tt);
}


查看完整回答
反對(duì) 回復(fù) 2018-08-04
?
素胚勾勒不出你

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

這題總結(jié)下來(lái)就2點(diǎn)知識(shí):
1. 聲明提升
2. 作用域鏈

先說(shuō)后者,js在訪問(wèn)一個(gè)變量時(shí)會(huì)優(yōu)先在該作用域(訪問(wèn)時(shí)的那個(gè)作用域)內(nèi)尋找是否聲明過(guò)該變量,如果該變量已經(jīng)存在,則直接使用它的值,否則它會(huì)尋找該作用域的‘父作用域/上級(jí)作用域’,以此類推,直到找到全局作用域?yàn)橹埂?/p>

關(guān)于聲明提升是指:js在解析的時(shí)候總是會(huì)將varfunction這類關(guān)鍵詞的聲明語(yǔ)句提升至該作用域的最頂部(注意:這里只會(huì)提升聲明部分)。

于是你那段代碼等價(jià)于下面

var tt = 'aa';   

function test(){    
      var tt; //這個(gè)tt未被賦值,按js的‘規(guī)矩’,它的值是`undefined`
    alert(tt);
    tt = 'dd';
    alert(tt);    
}   

test();

所以執(zhí)行的時(shí)候返回的是 undefined 和 dd.


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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