JS 基本資料型別 和 引用資料型別

2021-10-21 21:01:02 字數 976 閱讀 9620

變數都是儲存在棧記憶體中,基本資料型別的值直接在棧記憶體中儲存。相互不影響。

var a = 123;

var b = a;

a++; // b的值不變

棧記憶體中:變數值

b123

a123

物件儲存在堆記憶體中

var obj = new object();

obj.name = "墨祈";

var obj2 = obj;

obj.name = "moqi"; // obj和obj2的名字都被改了

棧記憶體:變數值

obj2

0x123

obj0x123

堆記憶體:

當new出現時,在堆記憶體中拿出一塊空間給new的這個東西,假如這個空間的位址是 0x123。

每建立乙個新物件,就會在堆記憶體中開闢出乙個新的空間,而變數儲存的是物件的記憶體位址(物件的引用)

當執行obj.name = "墨祈";時,在堆記憶體開闢出的空間中新增一條name = "墨祈";

當執行var obj2 = obj;時,在棧記憶體中新增obj2, 0x123

當修改屬性時,因為兩個變數儲存的是同乙個物件(同一塊記憶體),他們的值同時改變。

obj2 = null, 則鏈結斷開,obj2和obj不再指向同乙個物件。

當比較兩個引用資料型別時,比較的是記憶體位址。

var obj3 = new object();

var obj4 = new object();

console.log(obj3==obj4); // false

兩個物件,所有值都一樣,也不相等。因為不指向同乙個位址。

上述obj == obj2為true, 因為指向同乙個位址。

js 基本資料型別和引用資料型別

1 資料型別 js分兩種資料型別 基本資料型別 number string boolean null undefined symbol es6 這些型別可以直接操作儲存在變數中的實際值。引用資料型別 object 在js中除了基本資料型別以外的都是物件,資料是物件,函式是物件,正規表示式是物件 2 ...

資料型別 基本資料型別和引用資料型別

一.分類 1,五種簡單資料型別 基本資料型別 number,string,boolean,null,undefined,新增symbol es6 基本資料型別是指存放在棧中的簡單資料段,資料大小確定,記憶體空間大小可以分配,它們是直接按值存放的,所以可以直接按值訪問。1 undefined 宣告的變...

js基礎 基本資料型別和引用資料型別

number string null boolean undefined object 變數都是儲存在棧記憶體中的 js中的變數都是儲存在棧記憶體中的,基本資料型別的值直接在棧記憶體中儲存,值與值之間是獨立存在的,修改乙個變數的值不會影響到其它變數的值。比如 var a 10 var b a a c...