> 健康
js数据类型存储结构区别(js中简单数据类型和复杂数据类型在内存中如何存储试用)
导语:js快速入门——图解数据类型和内存的关系
本文解决的问题:
1.深拷贝和浅拷贝的区别是什么?
2.各种数据类型在内存的如何读取?
话不多少我们上代码,我们带着问题去看知识点
var num = 1; var num2 = num; num = 6; var obj = { name: &39; }; var obj2 = obj; obj.name = &39;; console.log(num); // 6 console.log(num2); // 1 console.log(obj); //{name: } console.log(obj2); // {name: }
对于刚接触js的同学来说,可能还有这样的疑问 num 和 num2 不应该都是 6吗,我改了obj这个变量的属性值,怎么obj2 也改变了? 这些如果单纯看这些代码是很难解释的,因为这些字面上是不知道这些代码执行背后真正在做什么?
我们看下解析和执行代码过程中,内存的变化
var num = 1;
var num2 = num;
num = 6;
var obj = { name: &39; };
var obj2 = obj;
obj.name = &39;;
此时内存最终的存储的数据
总结:
基本数据类型赋值的是具体值,引用类型赋值的是指向堆内存的地址浅拷贝复制的是栈内存的值,复制引用类型的是地址深拷贝复制的是栈内存的值,访问引用类型的是地址具体复制每个属性值,并在栈内存中开辟新的空间存放指针本文内容由快快网络小媛创作整理编辑!