JavaScript数据存储方式

87 阅读1分钟

简单类型又叫做基本数据类型或者【值类型】,复杂类型又叫做【引用类型】。

1、数据类型

值类型: 简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型string ,number,boolean,undefined,null

引用类型: 复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等

2、堆栈空间分配区别

一、栈(操作系统)

由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈;

简单数据类型存放到栈里面

let num = 10;
let num2 = num;
num = 20;
console.log(num2); // 10
// 基本数据类型传值方式只是把值复制过去,再进行任何操作都互补干扰

image.png

image.png

二、堆(操作系统)

存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。

引用数据类型存放到堆里面

let obj1 = {
    age:18
}
let obj2 = obj1; // 实际上时把obj1的地址赋值给了obj2,让obj1和obj2同时指向一个内存空间
obj1.age = 20;
console.log(obj2.age)// 20
// 引用数据类型传值方式是  地址传递,当另一个指向这个地址的变量修改这个内存时,另一个也会修改