Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
难度:⭐ ⭐
答:
浅拷贝和深拷贝都是创建一份数据的拷贝。
JS 分为原始类型和引用类型,对于原始类型的拷贝,并没有深浅拷贝的区别,我们讨论的深浅拷贝都只针对引用类型。
-
浅拷贝和深拷贝都复制了值和地址,都是为了解决引用类型赋值后互相影响的问题。
-
但是浅拷贝只进行一层复制,深层次的引用类型还是共享内存地址,原对象和拷贝对象还是会互相影响。
-
深拷贝就是无限层级拷贝,深拷贝后的原对象不会和拷贝对象互相影响。
网络上的很多文章觉得引用类型赋值就是浅拷贝,误导了很多人,我在这篇文章中揭秘了深拷贝和浅拷贝的区别,可以参考一下。
平时开发中,一般是使用三方库来处理深拷贝,比如 lodash。
处理浅拷贝的话,对象可以使用 Object.assign、扩展运算符,数组可以使用扩展运算符, concat、slice 或者 Array.from 方法。
结尾
如果我的文章对你有帮助,你的👍就是对我最大的支持^_^
我是阿林,输出洞见技术,再会!
上一篇:
「前端每日一问(15)」JavaScript 字符串的常用方法有哪些?
下一篇: