亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

js變量問題

js變量問題

qq_殺意隆_0 2017-08-25 22:10:31
var?a={x:1}; var?b=a; b.x=2; //本來只修改b,結果b和a的值都變成{x:2} var?m=1; var?n=m; n=2; //結果只有n變為2,m還是1上面2種情況為何不同?第一種情況對數組也有類似結果
查看完整描述

4 回答

?
qq_安安_17

TA貢獻49條經驗 獲得超52個贊

var?a={x:1};//a為object:引用數據類型。a有x屬性,屬性值為1
var?b=a;//b也為object
b.x=2;//訪問并修改引用數據類型的屬性

/*按引用訪問,當查詢時,
*我們需要先從棧中讀取內存地址
然后再找到保存在堆內存中的值;
*/
??
var?m=1;//基本數據類型
var?n=m;
n=2;
/*按值訪問,操作的是他們實際保存的值;*/


查看完整回答
2 反對 回復 2017-08-25
  • qq_殺意隆_0
    qq_殺意隆_0
    我不是計算機專業。“按引用”‘按值’‘棧’‘堆內存’這些概念是哪些專業基礎課的?我去看看書
  • qq_殺意隆_0
    qq_殺意隆_0
    是否第一種情況就類似于文件的快捷方式,第二種情況類似于文件的復制?
  • qq_安安_17
    qq_安安_17
    棧、堆是數據結構的,至于引用類型,基本數據類型。js書籍就有。java和C類似的這些都有,我也不是計算機系的,但學一門基礎語言是大學的必修吧,其實很多理念是一樣的
點擊展開后面1
?
Kingziqiang

TA貢獻5條經驗 獲得超2個贊

基本數據類型的修改是直接操作的是值,而引用數據類型操作的是地址,也就是說n=m就是把m的值復制一份給n,m還是1;n在改變和m沒關系,而應用數據類型的值a操作的是應用,b=a;只是a把引用給了b;而它倆的引用指向的而是用一個堆內存;這就是上為什么b修改后a也改變了

查看完整回答
1 反對 回復 2017-08-25
  • qq_殺意隆_0
    qq_殺意隆_0
    因為a是對象,所以就是引用?什么是引用數據類型
  • qq_殺意隆_0
    qq_殺意隆_0
    是否第一種情況就類似于文件的快捷方式,第二種情況類似于文件的復制?
?
_游戲人生_

TA貢獻31條經驗 獲得超92個贊

你需要一本高程3

查看完整回答
1 反對 回復 2017-08-26
點擊展開后面2
?
孔大夫

TA貢獻6條經驗 獲得超0個贊

?你可以理解成賦值是從右往左;?

查看完整回答
反對 回復 2017-08-26
  • 4 回答
  • 0 關注
  • 1926 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號