js 的深拷贝和浅拷贝

PX4无人机PID调参实战:从零到稳定飞行的关键步骤 本文详细介绍了PX4无人机PID调参的实战步骤,从理解双环控制结构到实战调参三部曲,帮助飞手解决飞行抖动、电机发热等常见问题。通过分析飞行日志、调整速率环P值、引入积分I和微调角度环与微分D,实现从零到稳定飞行的关键跨越,是无人机飞控调试的必修课。 阅读详情

要讲 js 的深浅拷贝就必须了解js的数据类型

基本数据类型:null、undefined、number 、string 、boolean 、symbol(es6)

引用数据类型:Object,Array, Map ....

数据赋值

- 基本数据类型拷贝对象的值,两个变量的值相等但是确实两个不同的变量。

- 引用数据类型拷贝的是对象的地址,两个变量指向同一个对象实例。改变其中一个变量的属性都会影响两外一个变量。【其实就是赋值了一个地址,但是没有创建新的对象】

深浅拷贝是对引用数据类型来说的

浅拷贝: 拷贝对象时只拷贝对象属性的一层,当对象的属性也是一个对象时拷贝的是对象的地址。

所以浅拷贝在对象的属性不全是基本数据类型的时候会带来一些问题,因为对象的属性对象指向的

是同一个对象实例,那么在改变的时候就会影响元数据。

const obj = {
  a1:1,
  a2:'a1',
  a3:{ b1: 2, b2:'b2' }
}

// 浅拷贝的方式
const nobj = {...obj}  es6语言
const nobj = Object.assign({},obj);  
const nobj = Object.keys(obj).reduce((res,cur) => ({ ...res,[cur]:obj[cur]}),{});
const nobj = {};
for(let key in obj)
  nobj[key] = obj[key];

// 新知识点 const 表示的常量, 对于基本数据类型来说是不可以改变值的,对于引用数据类型来说是不可以改变引用类型的地址的,但是却可以改变引用数据类的属性的值

// 深拷贝的方式【需要自己补充其他引用数据类型的拷贝】
function deepClone(obj){
  const type = Object.prototype.toString.call(obj);
  switch(type){
    case '[object Object]':
      const cloneObj = {};
      for(let key in obj)
        cloneObj[key] = deepClone(obj[key]);
      return cloneObj;
    case '[object Array]':
      return obj.map(item => deepClone(item));
    default:
      return obj;
  }
}

2022年TI杯模拟电⼦系统设计专题邀请赛——李萨如图形演示装置 本次装置主要是对输入的正弦信号进行频率变换,并将原输入正弦信号作为 X 轴信号、变换后的正弦信号作为 Y 轴信号,绘制李萨如图形。采用 EK-TM4C123GXL 板卡作为主控;频率变换采用“锁向环+计数器”实现 1-5 倍频的频率变换控制;李萨如图形采用两个 AD通道采集原输入的正弦信号作为 X 轴信号和频率变换后的正弦信号作为 Y 轴信号,绘制李萨如图形。 阅读详情

相关推荐

配置VScode编译、调试STM32(一)手动配置makefile和debug

做嵌入式的朋友们都应该有过想要有个功能强大的IDE或者编辑器,Keil MDK5、IAR EWARM是用的比较普遍的平台了,但是两者在编辑器方面都比较弱势,当然可以设置 或者使用外部编辑器,像Sourceinsight、notePad++这样,但毕竟需要切换回来进行Build、Debug,非常麻烦。 VScode从发布至今口碑一直很好,而且里面有非常多的插件,比如彩虹括号、Code Runner、...

hanhe0551的博客 4289

详细讲解js中的深拷贝与浅拷贝

深拷贝与浅拷贝在其它语言中也经常被提及到,在实际项目开发过程中也常常需要区分当前使用的到底是深拷贝还是浅拷贝,有时候在该使用深拷贝的地方,我们使用了浅拷贝,会导致深藏不露的bug。

zhang_cherry的博客 2万+

告别手动打点计时:用Lauterbach TRACE32的RunTime功能,5分钟搞定嵌入式代码段性能分析

本文深入解析了Lauterbach TRACE32的RunTime功能在嵌入式代码性能分析中的革命性应用。通过硬件级计时原理和非侵入式设计,该功能能快速精确测量代码执行时间,显著提升开发效率,特别适用于汽车电子和工业控制领域。文章还提供了从基础设置到高级分析的完整实战指南,帮助工程师轻松掌握这一强大工具。

weixin_30615767的博客 279

JS 浅拷贝和深拷贝详解(巨详细)

浅拷贝,指的是创建新的数据,这个数据有着原始数据属性值的一份精确拷贝如果属性是基本类型,拷贝的就是基本类型的值。如果属性是引用类型,拷贝的就是内存地址即浅拷贝是拷贝一层,深层次的引用类型则共享内存地址深拷贝开辟一个新的栈,两个对象属性完成相同,但是对应两个不同的地址,修改一个对象的属性,不会改变另一个对象的属性。

qq_63299825的博客 5520

ENVI 5.6 + Sarscape 5.2 保姆级教程:哨兵一号数据处理全流程(含DEM自动下载)

本文提供ENVI 5.6与Sarscape 5.2处理哨兵一号数据的完整实战教程。详细介绍了从数据导入、研究区裁剪、DEM自动下载与集成,到核心的配准、滤波及地理编码全流程,最终生成可用于定量分析的地理编码后向散射系数图。重点演示了DEM数据在SAR处理中的关键作用与自动获取方法,帮助用户快速掌握SAR数据基础处理技能。

coffee的博客 682

实测昇腾310P跑Qwen3有多慢?手把手带你部署vLLM并记录性能数据

本文实测了昇腾310P在vLLM框架下部署Qwen3模型的性能表现,详细记录了2.5 tokens/s的生成速度及其技术瓶颈。通过环境搭建、基准测试和深度分析,揭示了计算资源利用率不足等关键问题,并提供了实用的优化技巧与监控方案,帮助开发者更好地理解和优化昇腾平台上的大模型部署。

weixin_28724319的博客 895

js 浅拷贝 和 深拷贝

目录 一、浅拷贝与深拷贝的关系 1、基本类型 2、引用数据类型——对象(object) (1)、对象的浅拷贝 (2)、对象的深拷贝 二、对象的浅拷贝的实现 1、ES6中的Object.assign方法实现对象的浅拷贝 2、直接赋值法实现对象的浅拷贝 三、对象的深拷贝的实现 1、ES6中的扩展运算符(...)实现对象的深拷贝 2、用JSON对象的parse和stringify方...

青蛙king的博客 5292

webapi .net core8.0配置使用Token权限认证

本人在网上找了很多版本,不是太复杂就是不行。

m0_74824592的博客 1760

JS之深拷贝与浅拷贝

JS深拷贝与浅拷贝

qq_50797036的博客 1967

Spring Boot 实现多图片上传并回显,涨姿势了~

上传 Controller的代码非常简单,由于用了SpringMVC框架,所以直接用MultipartFile来接即可。由于是多图片上传所以用数组来接。此处应该注意参数名应该和<input>中的name值相对应: @RequestMapping("/pic") @ResponseBody publicResponseEntity<String>pic(MultipartFile[]pictures)throwsException{ ResponseEnti...

weixin_54556126的博客 894

AF3 ProteinDataset类的_patch方法解读

AlphaFold3 protein_dataset模块 ProteinDataset 类  _patch 方法的主要目的是围绕锚点残基(anchor residues)裁剪蛋白质数据,提取一个局部补丁(patch)作为模型输入。

qq_27390023的博客 1147

一次搞懂浅拷贝与深拷贝

栈(stack):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;堆(heap):一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表浅拷贝就是只拷贝基础数据类型的数据,并且数据只有单一的一层,而深拷贝用于拷贝具有复杂的数据类型的数据。

DZQ1223的博客 6713

【锂离子电池力学耦合及相场法模拟技术与应用】

8. 电化学仿真软件的使用与案例分析 (1) 各向异性纳米线锂化应力分析(实例讲解1) (2) 化学反应及死锂现象研究(案例分析2)(3) 锂化循环损伤计算(案例分析3)6. 4. 电池材料的力学与电化学耦合性能分析(1) 耦合效应对电池性能的影响(2) 耦合模型的验证与应。5. 5. 电池颗粒、极片、电芯尺度力-电-化-热多场耦合模型概述力学-7. 颗粒尺度耦合模型在电池失效分析中的应用。2. 2. 电池电极材料的分类与特性。5. (2) 耦合模型的验证与应用。电化学耦合模型与仿真。

weixin_51101456的博客 523

一文大白话讲清楚javascript数据的赋值、浅拷贝和深拷贝以及js内置的浅拷贝和深拷贝方法

一文大白话讲清楚javascript数据的赋值、浅拷贝和深拷贝以及js内置的浅拷贝和深拷贝方法

xiaobangkeji的博客 1210

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

js 深拷贝_小猿圈JavaScript深拷贝和浅拷贝

你会不会在开发项目的过程中遇到这样的问题,经常会拿到一个数据后需要拷贝一份副本出来,而且很多前端框架都是拷贝的,针对以上的问题小猿圈讲师分享给大家JavaScript深拷贝和浅拷贝,希望对于学习中的你,有一定的帮助。涉及到了JS中对数据的深浅拷贝问题,所谓深浅拷贝,浅拷贝的意思就是,你只是复制了对象数据的引用,并没有把内存里的值另外复制一份,那么深拷贝就是把值完整地复制一份新的值。操作拷贝之后的数...

weixin_39872395的博客 72

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

js 浅拷贝直接赋值_小猿圈JavaScript深拷贝和浅拷贝

你会不会在开发项目的过程中遇到这样的问题,经常会拿到一个数据后需要拷贝一份副本出来,而且很多前端框架都是拷贝的,针对以上的问题小猿圈讲师分享给大家JavaScript深拷贝和浅拷贝,希望对于学习中的你,有一定的帮助。涉及到了JS中对数据的深浅拷贝问题,所谓深浅拷贝,浅拷贝的意思就是,你只是复制了对象数据的引用,并没有把内存里的值另外复制一份,那么深拷贝就是把值完整地复制一份新的值。操作拷贝之后的数...

weixin_29375669的博客 118

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

js 浅拷贝直接赋值_深入剖析javaScript中的深拷贝和浅拷贝

在面试时经常会碰到面试官问:什么是深拷贝和浅拷贝,请举例说明?如何区分深拷贝与浅拷贝,简单来说,假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,如果B没变,那就是深拷贝;我们先看两个简单的案例://案例1 var a1 = 1, a2= a1;console.log(a1) //1console.log(a2) //1a2 = 2; //修改 a2consol...

weixin_36087357的博客 186

js深拷贝和浅拷贝对数组的影响_Javascript浅拷贝和深拷贝分析

一、什么是浅拷贝、什么是深拷贝我们都知道js的数据类型分为基本类型和引用类型,一般讨论到浅拷贝和深拷贝的都是针对引用类型的,像Object和Array这样的复杂类型,1、浅拷贝:以Object为例 var a = { name: 'Wendy' }; var b = a; b.name = 'Lily'; console.log(b.name); // Lily console.log(a.nam...

weixin_42520573的博客 109

js深拷贝和浅拷贝对数组的影响_浅拷贝与深拷贝-javaScript

浅拷贝与深拷贝为了更好的理解js的深浅拷贝,我们先来理解一些js基本的概念数据类型javascript中的数据分为基本数据类型(String, Number, Boolean, Null, Undefined,Symbol)和复杂的数据类型(也称作引用数据类型-Object)。当一个变量存放基本数据类型时与复杂的数据类型时分别存在以下的特点:基本数据类型的特点:变量直接将基本数据类型的值存储在栈(...

weixin_39637921的博客 174

【JavaScript】浅拷贝和深拷贝

JavaScript中的对象拷贝是我们在日常开发中经常遇到的一个问题。深浅拷贝是两种常见的拷贝方式,它们分别适用于不同的场景。本文将深入探讨JavaScript中浅拷贝和深拷贝的概念、区别以及实现方式。

qq_43774332的博客 1377

js深拷贝和浅拷贝对数组的影响_一文读懂javascript深拷贝与浅拷贝

前言在 javascript 中有不同的方法来复制对象,如果你还不熟悉这门语言的话,复制对象时就会很容易掉进陷阱里,那么我们怎样才能正确地复制一个对象呢?读完本文,希望你能明白:什么是深/浅拷贝,他们跟赋值有何区别?深/浅拷贝的实现方式有几种?浅拷贝与深拷贝浅拷贝是创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷...

weixin_32112607的博客 174

js中浅拷贝与深拷贝_js中深拷贝和浅拷贝

当我们把一个对象赋值给一个新的变量时,赋的其实是该对象的在栈内存中的引用地址,而不是堆内存中的数据。也就是两个对象指向的是同一个堆内存空间,无论哪个对象发生改变,其实都是改变的堆内存空间中的数据,因此,两个对象是联动的。后的New List Head的指向与Original List Head的指向其实是同一个Node,因为浅拷贝复制的其实是栈内存中对象的引用,而不是保存在堆内存中真实的值,两个对象还是在共用同一个堆内存地址。,引用类型值是按引用访问的,引用保存在栈内存中,真实的值保存在堆内存中。

2401_85124119的博客 728

JS 浅拷贝和深拷贝

JS 浅拷贝和深拷贝

学习笔记! 1219

JS的深拷贝和浅拷贝

介绍JS的浅拷贝和深拷贝

蔡姐的博客 3260

js 深拷贝_我不知道的JS之深拷贝和浅拷贝

我不知道的JS之深拷贝和浅拷贝深拷贝和浅拷贝是什么?通过上一篇文章,我们已经知道JavaScript在执行时,V8引擎会把程序用到的变量存储在内存的两个不同的逻辑分块中:栈和堆中。至于为什么要这么存,简单来说栈是程序运行时的上下文,可以通过栈来非常快速的切换执行上下文。这就要求栈的每个元素占用的存储空间必须是「固定的(32字节)大小」(为了方便下文中把这个固定大小的空间叫作一个存储单元),但是我们...

weixin_39949584的博客 83

【2022前端进阶】赋值、浅拷贝和深拷贝(js / javascript)

js中的8种数据类型和他们在内存中的分配形式,赋值、浅拷贝和深拷贝的区别,浅拷贝和深拷贝的多种实现方式

Cyrios_ykx的博客 636
上一篇: ajax ? 如何创建一个ajax请求
下一篇: css 居中
wll3241@163.com
博客等级 码龄9年 3粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值