一、数据类型
1、原始数据类型(6种)
内存大小固定,保存在栈内存中的简单数据段,如:Number、String、Boolean、Undefined、Null、Symbol
2、引用数据类型
内存大小不固定,保存在堆内存中的对象,如:Object、function、Array、Date、RegExp(正则表达式)
不可以直接访问堆内存空间中的位置和操作堆内存空间。只能操作对象在栈内存中的引用地址。
栈内存:容量小、速度快(线性存储)
堆内存:容量大、速度慢(在堆内存中分配新的存储区域,并把指向该存储区域的指针存到栈内存中)
二、浅拷贝、深拷贝
1、浅拷贝
使用普通方法复制一个引用数据类型的对象时,复制的值实际上是一个指针,===该对象在堆内存中的存储地址。
let obj1 = [1,2,3,{
name:'mark'}];
let obj2 = obj1 ;
obj2[0] = 4;
console.