搜索
写经验 领红包
 > 健康

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;;

此时内存最终的存储的数据

总结:

基本数据类型赋值的是具体值,引用类型赋值的是指向堆内存的地址浅拷贝复制的是栈内存的值,复制引用类型的是地址深拷贝复制的是栈内存的值,访问引用类型的是地址具体复制每个属性值,并在栈内存中开辟新的空间存放指针

本文内容由快快网络小媛创作整理编辑!