JS--變數及深淺拷貝
阿新 • • 發佈:2018-12-09
JS變數分為基本型別和引用型別
基本型別資料包括Number, String, Boolean, Null, Undefined五種型別;
引用資料型別包括Array, Date, RegExp, Function等, 統稱為Object型別。
JS變數的儲存方式
基本型別變數儲存在記憶體的棧中,棧內分別儲存著變數的識別符號和變數的值。
var num1 = 3;
var num2 = 5;
引用型別變數儲存在記憶體的堆中,儲存結構如下
var person = { name:"tom", age: 16, sayName: function(){ console.log(this.name); } }
基本與引用變數的區別
變數的訪問方式不同
從一個變數向另一個變數複製基本型別值和引用型別值時,存在不同
訪問方式
基本變數:
按值訪問,即通過對儲存在變數中的值進行操作
引用變數:
按引用訪問,即通過變數的引用對變數進行操作,不能直接訪問引用變數的記憶體空間
從一個變數向另一個變數複製基本型別值和引用型別值時
基本變數的複製
var num1 = 3; var num2 = num1; console.log(num1 === num2); num2 = 5; console.log(num1, num2);
num2變數值的改變並不會影響變數num1的值,num2中的3只是num1中的3的一個副本,兩者相互獨立,互不影響。
其複製及賦值過程如下圖所示:
引用變數的複製