js中浅拷贝和深拷贝的区别

JavaScript有两种数据类型,基本数据类型和引用数据类型。基本数据类型都是按值访问的,

我们可以直接操作保存变量中的实际值,而引用数据类型如Array,我们不能直接操作对象的堆空

间,引用数据类型的值都是按引用访问的,即保存在变量对象中的一个地址。

浅拷贝(shallow copy):只复制指向某个对象的指针,而不复制这个对象本身,新旧对象共享一

块内存。

深拷贝(deep copy)):复制并创建一个一模一样的对象,不共享内存,修改新对象旧对象不会改

变。

注:深拷贝和浅拷贝的区别只适用于array数组和object对象

如何区分深拷贝和浅拷贝:简单的说,就是假设B复制了A,当修改A时,看B是否会发生变

化,如果B也跟着变了说明这是浅拷贝,拿人手短;如果B没变,那就是深拷贝,自食其力。

相关推荐
摘星编程几秒前
React Native鸿蒙版:React Query无限滚动
javascript·react native·react.js
月空MoonSky1 小时前
解决使用Notepad++出现异型字或者繁体字体问题
java·javascript·notepad++
研☆香2 小时前
简单的复选框 全选 反选功能
javascript
林间风雨2 小时前
layui 2.9.16 版本,根据字段字数最大数,表格自适应字段宽度
前端·javascript·layui
hzb666662 小时前
xd_day47文件上传-day55xss
javascript·学习·安全·web安全·php
灰海3 小时前
vue实现即开即用的AI对话打字机效果
前端·javascript·vue.js·打字机
Ulyanov3 小时前
Impress.js深度技术解析:架构基础与结构化设计
开发语言·前端·javascript
充气大锤3 小时前
前端实现流式输出配合katex.js
开发语言·前端·javascript·ai·vue
邝邝邝邝丹3 小时前
vue2-computed、JS事件循环、try/catch、响应式依赖追踪知识点整理
开发语言·前端·javascript