理解数据的存储形式

什么是栈:

     计算机为原始数据类型开辟的一块的内存地址 string number ....

1 var a = "zp";
2 var b = a;
3 b = "pz";
4 console.log(a,b); // zp pz

 理解: 存储a变量的时候为a 开辟一块栈空间,【 【a】】然后存储b 变量的时候又开辟了一块栈空间 【【a】【b】】,这时候 a 和 b 的值都为 “zp”, b = "pz",b 把值进行了更改为 “pz”,并不会影响到a 的值。

什么是堆:

     计算机为引用数据类型开辟的一块内存地址  object 

1 var c = {key: 1};
2 var d = c;
3 d.key = 2;
4 console.log(c,d); // {key: 2} {key: 2}

 理解:定义一个对象的时候,计算机并不知道你定义对象的大小,你对象上的值有多少,key value 值不确定,所以会先给你个地址值  c【“x0000018”】-> 指向一个堆 {key:1}堆里面可以随意设置值, d = c 的时候也会给其一个地址值 c d 【 “x0000018” , "x0000018"】-> {key: 1} 。当d.key = 2 改为2的时候 ,同样也把 c 地址指向的对象也改为 {key:2}

原文地址:https://www.cnblogs.com/PengZhao-Mr/p/14537355.html