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

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

javascript面試題

javascript面試題

慕斯王 2019-03-14 18:15:19
function foo(a){    a = a * 10;}function bar(b){    b.value = 'new';}var a = 1;var b = {value: 'old'};foo(a);bar(b);console.log(a); //1console.log(b);function foo(){    a = a * 10;}function bar(b){    b.value = 'new';}var a = 1;var b = {value: 'old'};foo(a);bar(b);console.log(a); // 10console.log(b);為什么兩道題的結(jié)果不一樣
查看完整描述

5 回答

?
牛魔王的故事

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

因?yàn)榈谝欢未a相當(dāng)于:


function foo(c){

    c = c * 10;

}

function bar(b){

    b.value = 'new';

}

var a = 1;

var b = {value: 'old'};

foo(a);

bar(b);

console.log(a); //1

console.log(b);


查看完整回答
反對(duì) 回復(fù) 2019-03-23
?
躍然一笑

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

上面的方法設(shè)有形參變量,方法內(nèi)部的代碼執(zhí)行操作的是這個(gè)形參。而下面的方法,沒有設(shè)形參,也沒有var一個(gè)a,所以在函數(shù)內(nèi)部操作a的時(shí)候會(huì)從當(dāng)前方法的上一作用域找這個(gè)a,然后就找window下的a了,之后的操作都是對(duì)全局下的a進(jìn)行的操作,所以兩次的結(jié)果不一樣。


查看完整回答
反對(duì) 回復(fù) 2019-03-23
?
慕哥9229398

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

首先a是一個(gè)基本數(shù)據(jù)類型的值,因此以參數(shù)的形式傳入a時(shí),就相當(dāng)于把a(bǔ)的值拷貝了一份,賦值給foo函數(shù)體內(nèi)的局部變量a,因此在函數(shù)體內(nèi)對(duì)局部變量的操作,不會(huì)影響到外部的全局變量a。


var a = 1;

var b = a;        // 把a(bǔ)的值拷貝給b,就相當(dāng)于把a(bǔ)的值拷貝一份給函數(shù)參數(shù)中的a

b = 2;            // 重新給b賦值,就相當(dāng)于在函數(shù)體內(nèi)重新對(duì)參數(shù)a賦值

console.log(a)    // 1

這道面試題考查的是函數(shù)傳值和傳引用的區(qū)別,我之前也遇到過,在給你舉一個(gè)傳引用的例子吧


var number = new Number(2);


function test(number) {

  number.value = 3;         // 為number對(duì)象添加了value屬性

}    


test(number)

console.log(number)        Number {2, value: 3}

這里number是一個(gè)對(duì)象,屬于引用類型,因此以參數(shù)的形式傳入number時(shí),實(shí)際上傳入的只是number的地址,在函數(shù)體內(nèi)任何對(duì)number的操作都會(huì)反映到number對(duì)象上


最后給你一點(diǎn)小小的建議,一定要多看看書,很多東西只有看書才能理解透徹,推薦幾本我現(xiàn)在在看的書《javascript高級(jí)教程》《javascript語言精粹》《javascript忍者秘籍》


查看完整回答
反對(duì) 回復(fù) 2019-03-23
?
慕田峪7331174

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

區(qū)別在于:foo 函數(shù)有沒有定義行參。

foo 函數(shù)沒有接收參數(shù),操作的是全局變量a, 打印出來的也是全局變量a.
foo 函數(shù)接收參數(shù),由于a 是基本數(shù)據(jù)類型,直接把本身傳入函數(shù),并且存在函數(shù)作用域,函數(shù)內(nèi)部a,跟外面的全局變量a就沒關(guān)系了,函數(shù)內(nèi)部的a 屬于函數(shù)上下文中的變量對(duì)象,外部的a 屬于全局上下文中的變量對(duì)象。


查看完整回答
反對(duì) 回復(fù) 2019-03-23
?
搖曳的薔薇

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

這個(gè)坑其實(shí)不大的,第一個(gè)因?yàn)槎x的是foo(a),所以運(yùn)行中a=a*10的a是局部變量,因?yàn)檫@個(gè)值沒有返回,所以全局的a并沒有變。而第二個(gè)是foo(),直接操作的全局變量,注意這個(gè)時(shí)候的foo(a)其實(shí)等效于foo(),傳參沒有被接收的,還是直接全局變量。

查看完整回答
反對(duì) 回復(fù) 2019-03-23
  • 5 回答
  • 0 關(guān)注
  • 381 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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