一.根据内存原理 可以 把数据分为两类 1.值类型 2.引用类型
原理图:
-
值类型: (string,number,Boolean,null,undefined)
!!! 值类型 储存在 '栈' 里面, 赋值给变量的是数据,修改拷贝后的数据不会对原数据造成影响
-
引用类型 : 数组 对象
!!! 引用类型 储存在 '堆' 里面 ,赋值给变量的是地址,修改拷贝后的数据会影响原数据
! let 关键字 只能在 '栈' 中开辟空间
引用类型储存在 '堆' 空间里
let arr1 = [10, 20, 30] // let 关键字在'栈'中开辟空间;数组储存
在'堆'中,arr1拿到的是存储在'堆'中数组的'地址'
let arr2 = arr1 // 将'地址'复制给arr2 此时arr2的地址也指向原数组
arr2[0] = 100 // 改变了原数组的值,由于地址一致,arr1也会受影响
console.log(arr1); //[100,20,30]
console.log(arr2); //[100,20,30]