js数组深拷贝和浅拷贝(js数组深拷贝和浅拷贝的区别)

js数组深拷贝和浅拷贝(js数组深拷贝和浅拷贝的区别)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> 

讯享网

在javascript中,浅拷贝只是复制了原数据的内存地址,相当于两个数据指针指向了相同的地址,任意一个数据元素发生改变,会影响另一个;而深拷贝是另外申请了一块内存,内容和原数据一样,两个数据指向了不同的地址,两个数据不会相互影响。


讯享网

接着看下基本数据类型 & 引用数据类型(又称复杂数据类型)
1、基本类型:String、Number、Boolean、null、undefined、Symbol(ES6新增,表示独一无二的值);基本类型值在内存中占固定大小,保存在栈内存中。
2、引用类型:Object、Array、Date、Function等;引用类型的值是对象,保存在堆内存中。
注:深浅拷贝的区别只适用于Array与Object这样的复杂对象。

讯享网

输出:

 

可以发现,对于引用数据类型,如果包含引用数据类型,那么只对第一层深拷贝是不够的。

小讯
上一篇 2025-04-14 12:06
下一篇 2025-05-05 17:58

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/142108.html