JavaScript中变量存储在堆中还是栈中?
https://www.zhihu.com/question/482433315/answer/2083349992
js的变量究竟存在哪里,上面的文章说的很好。鉴于,我们这个标题说的是js深浅拷贝,我们就粗略的认为:
基本数据类型,存在栈内存中
引用数据类型,存在堆内存中
深浅拷贝
深浅拷贝,这个概念是针对引用数据类型的,引用数据变量的值是一个指向栈内存的一个地址。
浅拷贝,仅仅拷贝的是这个地址。
深拷贝,拷贝的是真正存在栈内存的数据。
如何实现深拷贝
JSON.stringify()和JSON.parse()。先讲对象转为字符串,再将字符串转为对象。
使用递归函数,不停判断属性是否是基本数据类型。