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

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

遇到了數(shù)組push的問題求解答

遇到了數(shù)組push的問題求解答

慕虎7371278 2018-12-10 13:19:20
var a = [1,2,3];var b = a;b.push(4);alert(b);這里輸出的結果為什么是[1,2,3,4]呢?為什么會修改了原數(shù)組的值呢? var a = [1,2,3];  var b = a;  b = [1,2,3,4];   alert(a);  這個題目和上面的有什么區(qū)別呢?                
查看完整描述

1 回答

?
30秒到達戰(zhàn)場

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

首先第一個問題,是js除開基本類型的引用傳遞,所以在


var a = [1,2,3];    //a存儲的是一個內(nèi)存地址x,該地址存放的內(nèi)容是[1,2,3]

var b = a;        //將a所指向的內(nèi)存地址x賦值給b

b.push(4);        //在內(nèi)存地址x指向的數(shù)據(jù)中增加元素4

其過程是 x => [1,2,3] x => [1,2,3,4] "=>"表示指向內(nèi)存


第二個問題和第一個問題的區(qū)別在于對于b的再次賦值


b = [1,2,3,4]; //清空原有內(nèi)存地址x中存放的數(shù)據(jù),重新賦值為[1,2,3,4]

這段代碼的過程: x => [1,2,3] x => null x => [1,2,3,4]

在這個過程中,因為a b都是指向內(nèi)存地址x,所以不管是a還是b重新賦值后,改變的都是該內(nèi)存地址的數(shù)據(jù),所以

a=x=>[1,2,3,4]

b=x=>[1,2,3,4]


查看完整回答
反對 回復 2019-01-10
  • 1 回答
  • 0 關注
  • 464 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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