基本类型赋值
基本类型赋值是将是将值复制给这个变量,变量之间的赋值,是将变量的值给复制给其他变量。都是将值复制存到相应栈里面。
引用类型赋值
引用类型赋值,是将引用类型的指针进行复制,引用类型存在堆中,变量存储的是引用类型的指针,指针指向引用类型,例如图1。
浅复制
es6中已经有了浅复制的用法,Object.assign(),复制第一层,什么是第一层呢,如图2所示
同之前的对象的赋值是一个道理,但是浅复制会将第一层进行复制,第二层以后的对象将不会被复制。
深复制
深复制顾名思义就是全部都复制,复制一个新的对象放到新的指针里面,两个内容完全一样但是互不影响。深复制使用递归,将对象进行复制。如图3。
深复制还可以使用json的方法去写,使用JSON.parse(JSON.stringify(Arr)),对数据进行深复制。