亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

Javascript 賦值機制詳解

2024-05-06 16:10:54
字體:
來源:轉載
供稿:網友
本文通過實例詳細介紹了javascript的賦值機制,是篇非常不錯的文章,這里推薦給小伙伴們。
 
 

今天回答了一個關于 Javascript 的問題,涉及到了賦值問題,因此想把這個問題好好總結下。

 

復制代碼代碼如下:

var a = 'test';
var b = function() {};
b.a = 'test';
function change(m, n) {
    m = 'change';
    n.a = 'change';
}
change(a, b);

 

執行上述代碼后,變量 a 和 b 的值會發生改變嗎?

原始值和引用值

在 之前的文章中介紹過原始值和引用值,原始值指的 Undefined, Null, Boolean, Number, String 等,它們存放在棧中,而引用值則集成自 Object,它被存放在堆中。
這里要把兩者區分清楚:

 

復制代碼代碼如下:

var a = 'test';
var b = new String('test');
var A = 'true';
var B = new Boolean('true');

 

以上四個變量,a 和 A 為原始值,而 b 和 B 則為引用值。

賦值機制

清楚了原始值和引用值的區別后,就可以具體介紹 Javascript 的賦值機制:

在 Javascript 中,對于原始值類型的變量,每次賦值都將生成一份拷貝,而對于引用值,則正如其名,是通過引用賦值,指向同一個存儲對象的內存處。
原始值的賦值:

 

復制代碼代碼如下:

var a = 1;//原始值 
var b = a;//生成一份拷貝給變量 b
b = 2;//與 a 無關
alert(a);//輸出 1

 

引用值的賦值:

 

復制代碼代碼如下:

var A= new Object();//引用值
A.x = 1;
var B = A;//引用賦值,指向同一個內存處
B.x = 2;//修改 B 將影響 A
alert(A.x);//輸出 2

 

參數傳遞

現在我們來看看傳遞兩種類型的值給函數形參時時怎么處理的。
1.傳遞原始值

 

復制代碼代碼如下:

var a = 1;
function test(m) {
    m = 2;
}
test(a);
alert(a);//輸出 1

 

輸出為1,所以我們知道函數只是將變量的值傳遞進去了,所以在函數體內的 m 得到傳來的值1,再被賦值為2,這個過程不影響外部的變量 a。

2.傳遞引用值

 

復制代碼代碼如下:

var A= new Object();
A.x = 1
function test(M) {
    M.x = 2;
}
test(A);
alert(A.x);//輸出 2

 

輸出為2,所以我們知道函數將變量的地址傳遞進去了,所以函數體內的 M 得到傳遞來的地址,因此屬性 x 被賦值為2的同時也會影響指向同一內存地址的 A。

總結

現在再回到開篇的問題:

 

復制代碼代碼如下:

var a = 'test';
var b = function() {};
b.a = 'test';
function change(m, n) {
    m = 'change';
    n.a = 'change';
}
change(a, b);

 

變量 a 為原始值,變量 b 為引用值,傳遞進函數體內一個為值,一個為地址,所以函數運行后,變量 a 不會改變,而變量 b 的值將會改變。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美在线第一页| 性日韩欧美在线视频| 亚洲激情免费观看| 亚洲国产高清自拍| 久久久欧美一区二区| 久久躁日日躁aaaaxxxx| 成人h猎奇视频网站| 欧美高清视频免费观看| 成人精品一区二区三区电影免费| 国产97在线|亚洲| 亚洲码在线观看| 97视频在线观看网址| 欧美日韩一区二区免费在线观看| 国产精品成人一区二区三区吃奶| 亚洲伊人第一页| 国产成人精品亚洲精品| 九九视频这里只有精品| 久久久国产成人精品| 国产91在线视频| xxav国产精品美女主播| 情事1991在线| 国内精品视频一区| 一区二区三区久久精品| 亚洲人在线视频| 亚洲国产中文字幕久久网| 欧美一级大片在线观看| 欧美专区在线视频| 中文字幕亚洲一区二区三区| 欧美成人精品一区二区三区| 7m第一福利500精品视频| 亚洲成人在线网| 日韩精品中文字幕久久臀| 插插插亚洲综合网| 欧美激情精品久久久久久| 91po在线观看91精品国产性色| 亚洲电影免费观看高清| 尤物精品国产第一福利三区| 国产精品人成电影在线观看| 欧美精品在线免费| 亚洲乱码av中文一区二区| 日本成人在线视频网址| 国产精品一区专区欧美日韩| 国产精品久久久久7777婷婷| 久久影院在线观看| 亚洲视频在线播放| 久久久久久高潮国产精品视| 亚洲一区二区中文字幕| 国内精久久久久久久久久人| 一区二区在线视频| 欧美极品美女电影一区| 亚洲xxxx3d| 国产亚洲精品日韩| 96国产粉嫩美女| 丁香五六月婷婷久久激情| 日韩成人av在线播放| 丝袜美腿精品国产二区| 精品国产老师黑色丝袜高跟鞋| 久久久久久高潮国产精品视| 9.1国产丝袜在线观看| 国产丝袜一区视频在线观看| 91久久久久久国产精品| 亚洲综合色激情五月| 亚洲成人999| 日本一区二区在线播放| 亚洲欧洲一区二区三区在线观看| 精品久久久久久中文字幕大豆网| 日韩精品中文字幕有码专区| 久久男人资源视频| 成人写真视频福利网| 国产精品久久国产精品99gif| 日韩视频亚洲视频| 精品久久久久久中文字幕大豆网| 亚洲精品国产免费| 久久久久久国产精品美女| 国产伦精品免费视频| 51色欧美片视频在线观看| 欧美在线亚洲一区| 欧美日韩国产麻豆| 欧美性色xo影院| 麻豆国产精品va在线观看不卡| 久久久久久有精品国产| 欧美做受高潮电影o| 亚洲第一综合天堂另类专| 欧美日韩亚洲视频一区| 国内精品久久久久久| 日韩精品www| 久久伊人精品天天| 欧美激情亚洲国产| 亚洲视频综合网| 精品亚洲永久免费精品| 91精品在线影院| 国产精品三级网站| 性欧美亚洲xxxx乳在线观看| 国产欧美精品va在线观看| 国产精品xxx视频| 青青久久av北条麻妃海外网| 久久久久国色av免费观看性色| 2021国产精品视频| 国产视频观看一区| 在线色欧美三级视频| 欧美精品xxx| 欧美激情高清视频| 欧美日韩xxxxx| 91大神福利视频在线| 日本一区二三区好的精华液| 日韩经典中文字幕在线观看| 久久久女女女女999久久| 亚洲美腿欧美激情另类| 国产视频精品自拍| 91久久久久久| 亚洲第一色中文字幕| 国产成人高潮免费观看精品| 2019中文字幕在线| 日本一区二三区好的精华液| 国产97在线播放| 国产精品视频自拍| 久久精品国产欧美亚洲人人爽| 亚洲成人中文字幕| 一区二区三区日韩在线| 欧美肥老妇视频| 精品亚洲一区二区三区| 欧美激情视频三区| 国产精品私拍pans大尺度在线| 精品成人国产在线观看男人呻吟| 国产成人黄色av| 成人h片在线播放免费网站| 欧美黑人巨大精品一区二区| 久久综合久久88| 国产精品69精品一区二区三区| 国产精品夜色7777狼人| 成人国产精品色哟哟| 色妞色视频一区二区三区四区| 97在线观看视频国产| 红桃av永久久久| 在线国产精品视频| 国产精品日韩电影| 国产精品观看在线亚洲人成网| 亚洲一区二区三区毛片| 亚洲成av人片在线观看香蕉| 综合欧美国产视频二区| 91精品久久久久久久久久| 亚洲性视频网址| 亚洲品质视频自拍网| 日本久久久久久久| 欧美美最猛性xxxxxx| 亚洲精品成人av| 亚洲天堂久久av| 成年无码av片在线| 狠狠操狠狠色综合网| 伊人激情综合网| 日韩av一区在线观看| 91伊人影院在线播放| 97国产成人精品视频| 亚洲天堂男人的天堂| 国产亚洲精品综合一区91| 91精品国产乱码久久久久久蜜臀| 国产在线拍偷自揄拍精品| 国产美女精品免费电影| 孩xxxx性bbbb欧美| 国产欧美欧洲在线观看| 国内外成人免费激情在线视频| 4438全国成人免费| 亚洲第一精品福利| 日韩在线观看免费全|