JavaScript中基本資料型別和引用資料型別
阿新 • • 發佈:2019-01-12
基本資料型別指的是簡單的資料段,引用資料型別指的是有多個值構成的物件。
1、常見的基本資料型別:
Number、String 、Boolean、Null和Undefined。基本資料型別是按值訪問的,因為可以直接操作儲存在變數中的實際值。示例:
var a = 10;
var b = a;
b = 20;
console.log(a); // 10值
上面,b獲取的是a值得一份拷貝,雖然,兩個變數的值相等,但是兩個變數儲存了兩個不同的基本資料型別值。
b只是儲存了a複製的一個副本。所以,b的改變,對a沒有影響。
下圖演示了這種基本資料型別賦值的過程:
2、引用型別資料:
也就是物件型別Object type,比如:Object 、Array 、Function 、Data等。
javascript的引用資料型別是儲存在堆記憶體中的物件。
與其他語言的不同是,你不可以直接訪問堆記憶體空間中的位置和操作堆記憶體空間。只能操作物件在棧記憶體中的引用地址。
所以,引用型別資料在棧記憶體中儲存的實際上是物件在堆記憶體中的引用地址。通過這個引用地址可以快速查詢到儲存中堆記憶體中的物件。
var obj1 = new Object();
var obj2 = obj1;
obj2.name = "我有名字了";
console.log(obj1.name); // 我有名字了
說明這兩個引用資料型別指向了同一個堆記憶體物件。obj1賦值給onj2,實際上這個堆記憶體物件在棧記憶體的引用地址複製了一份給了obj2,
但是實際上他們共同指向了同一個堆記憶體物件。實際上改變的是堆記憶體物件。
下面我們來演示這個引用資料型別賦值過程: