js基本数据类型和引用数据类型在内存中如何存储

前言:内存分为栈内存和堆内存如如下图:
js基本数据类型和引用数据类型在内存中如何存储
一,基本数据类型
例如
var a=123;
b=a;
a=456;
那么a,b的值分别为456,123具体是怎么存储的呢?见下图:

1.var a=123;b=a; 基本数据类型是在栈内存中存储的,如下图,b=a,b直接把a的值存进去
js基本数据类型和引用数据类型在内存中如何存储
2.a=456;会吧a的值改为456,但是对b没有任何影响,所有最后会输出a=456;b=123;
js基本数据类型和引用数据类型在内存中如何存储
二,引用数据类型
是在堆内存中进行存储的 例如:
var obj = new Object();
obj.name = ‘张三’;
var obj1 = obj;
obj.name = ‘李四’;
console.log(obj);
console.log(obj1);
结果都会输出‘李四’
1.var obj = new Object();
obj.name = ‘张三’;
var obj1 = obj;会在堆内存中开辟一个新的空间进行存储,生成一个地址,obj和obj1变量在栈内存中存的是该地址,这样就建立了连接
js基本数据类型和引用数据类型在内存中如何存储
2.obj.name = ‘李四’;会把堆内存重点qwert对象name改为李四,因为obj,obj1指向的都是qwert对象所以都会输出李四
js基本数据类型和引用数据类型在内存中如何存储