当前位置: 首页 > news >正文

前端八股 5

深拷贝和浅拷贝

基本类型存在栈内存中,保存变量的值
引用类型存在堆中,变量名存储指向该堆的一个地址(引用)

浅拷贝

创建新数据,数据和原始数据属性值一样,基本类型拷贝值,引用类型拷贝地址

实现浅拷贝方法:

1 Oject.assign静态方法

<script>const obj ={name:`wrak`,live:{moon:`yesterday`,son:`morning`}}const newobj = Object.assign(obj)for(k in newobj){console.log(`属性${k} 属性值:${newobj[k]}`)}</script>

输出结果:
在这里插入图片描述

2 Array类的原型方法Slice()切片

在这里插入图片描述
在这里插入图片描述

3 Array类的原型方法concat() 方法

在这里插入图片描述

…扩展运算符

const fxArr = ["One", "Two", "Three"]
const fxArrs = [...fxArr]
fxArrs[1] = "love";
console.log(fxArr) // ["One", "Two", "Three"]
console.log(fxArrs) // ["One", "love", "Three"]

手动实现浅拷贝

<script>const obj = {uname:'pink',age:18,hobby:[`数摇`,`盯鞋`],child:{sum:1,deep:2}}function shallowCopy(newObject,oldObject){for(k in oldObject){newObject[k] = oldObject[k]}}const newone = {}shallowCopy(newone,obj)for( k in newone){console.log(`属性名:${k} 属性值:${newone[k]}`)}</script>

在这里插入图片描述

深拷贝

深拷贝创建一个新对象,递归拷贝深层次属性,拷贝类型为对象的属性存储的值指向不同地址

实现:

1 lodash库 cloneDeep()函数

2 通过 JSON.stringify()实现

3 递归手动实现 先拷贝数组 再拷贝对象

在这里插入图片描述

http://www.xdnf.cn/news/249193.html

相关文章:

  • 2025深圳杯、东三省数学建模B题数模AI全网专业性第一
  • 2025五一杯C题五一杯数学建模思路代码文章教学:社交媒体平台用户分析问题
  • 文章记单词 | 第53篇(六级)
  • windows中Python的pip工具换源的方法及其原理
  • HOOK上瘾思维模型——AI与思维模型【88】
  • HW1 code analysis (Machine Learning by Hung-yi Lee)
  • gephi绘图
  • 自动剪辑批量混剪视频过原创软件工具视频帧级处理技术实践批量截图解析
  • Python实例题:Python实现Python解释器
  • C++的基础知识(引用、类、封装、继承、多态、函数重载)
  • 驱动读写实验
  • GRPO:利用组内平均奖励来计算优势
  • 蓝桥杯Python案例
  • 计算机组成原理实验(5) 堆栈寄存器实验
  • 2025五一杯数学建模ABC题赛题已出
  • ctfshow web入门 web44
  • Python学习笔记(第一部分)
  • 基于深度学习的人脸属性识别算法研究
  • 随机森林实战:从原理到垃圾邮件分类
  • 超稳定性理论
  • 第十四章:生产之路:LLM 应用部署、运维与优化
  • MOOS-ivp使用(一)——水下机器人系统的入门与使用
  • 【2025最新面经】暑期实习常问知识点
  • 前端面经 4
  • 【C++学习笔记】深入理解虚函数和多态
  • 简单句练习--语法基础
  • 50、【OS】【Nuttx】【OSTest】参数解析:函数定义
  • 当算力遇上堵车:AI如何让城市血管不再“血栓”?
  • OpenStack Yoga版安装笔记(25)Nova Cell理解
  • 黑马Java基础笔记-6