麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

Javascript 賦值機制詳解

2019-11-20 13:53:34
字體:
來源:轉載
供稿:網(wǎng)友

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

復制代碼 代碼如下:

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

執(zhí)行上述代碼后,變量 a 和 b 的值會發(fā)生改變嗎?

原始值和引用值

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

復制代碼 代碼如下:

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

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

賦值機制

清楚了原始值和引用值的區(qū)別后,就可以具體介紹 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

參數(shù)傳遞

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

復制代碼 代碼如下:

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

輸出為1,所以我們知道函數(shù)只是將變量的值傳遞進去了,所以在函數(shù)體內的 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,所以我們知道函數(shù)將變量的地址傳遞進去了,所以函數(shù)體內的 M 得到傳遞來的地址,因此屬性 x 被賦值為2的同時也會影響指向同一內存地址的 A。

總結

現(xiàn)在再回到開篇的問題:

復制代碼 代碼如下:

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 鸳鸯谱在线观看高清 | 九九热精品在线播放 | 国产精品免费小视频 | 黄色一级片在线免费观看 | 久久久www成人免费精品 | 欧美成人午夜精品久久久 | 九九热视频这里只有精品 | 91羞羞| 国产精品久久久久久久四虎电影 | 欧美人的天堂一区二区三区 | 蜜桃视频在线免费播放 | 免费观看黄色影片 | 最近日本电影hd免费观看 | v11av在线播放 | 久久国产精品区 | 亚洲综合网站 | 亚洲精品成人久久久 | 在线播放黄色网址 | 亚洲国产成人久久成人52 | 国产精品久久久久久婷婷天堂 | 国产1区2区3区在线观看 | 久久久三区 | 人禽l交免费视频观看 视频 | 久国产精品视频 | 99精品视频在线免费观看 | 精品一区免费 | 91成人在线免费 | 亚洲免费在线视频 | 在线免费av网站 | 激情大乳女做爰办公室韩国 | 91精品久久久久久久久网影视 | 中国黄色一级生活片 | 免费黄色小视频网站 | 国产精品一区二区三区在线看 | 国产精品视频一区二区噜噜 | 国产精品一区二区手机在线观看 | 国产乱乱视频 | 亚洲午夜精选 | 久久精品之 | 一分钟免费观看完整版电影 | 日本在线一区二区 |