一、数据类型
数据分为基本数据类型(String, Number, Boolean, Null, Undefined,Symbol)和对象数据类型。
基本数据类型的特点:直接存储在栈(stack)中的数据
引用数据类型的特点:存储的是该对象在栈中引用,真实的数据存放在堆内存里
引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,【前端精选40G资料包赠送co,每日新闻资讯ding,每天进步一点点bb,小写英文为微信】会首先检索其在栈中的地址,取得地址后从堆中获得实体。
![190b212966592209d745da538dafdfa3.png](https://img-blog.csdnimg.cn/img_convert/190b212966592209d745da538dafdfa3.png)
二、浅拷贝与深拷贝
深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的。
深拷贝和浅拷贝的示意图大致如下:
![c0ec29bd28c5fa0a3db3289e34b18c6a.png](https://img-blog.csdnimg.cn/img_convert/c0ec29bd28c5fa0a3db3289e34b18c6a.png)
浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。
三、赋值和浅拷贝的区别
当