面试题:说一说深拷贝和浅拷贝?

本文详细介绍了JavaScript中基本类型和引用类型的区别,以及浅拷贝(如Object.assign和扩展运算符)和深拷贝(递归、lodash的cloneDeep和JSON.stringify)的概念。重点讨论了浅拷贝的局限性和深拷贝的实现方法及其弊端。

JavaScript中存在两大数据类型: 基本类型 和 引用类型

基本类型数据保存在在栈内存中
引用类型数据保存在堆内存中,引用数据类型的变量是一个指向堆内存中实际对象的引用,存在栈中

深拷贝和浅拷贝都只针对于引用类型。

一、 浅拷贝:拷贝的是地址。如下就是一个浅拷贝的方法:

1、拓展运算符

在这里插入图片描述

先了解一下Object.assign方法,如下图所示:

在这里插入图片描述

简单对象用Object.assign()方法实现浅拷贝如下:这是es6新增的。

2、Object.assign()

在这里插入图片描述

总结:浅拷贝只拷贝一层简单数据类型(即,简单数据类型只会拷贝值),但是对于更深层次的对象,只会拷贝它的地址。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值