大理州城乡建设局官方网站成立外贸公司的流程

张小明 2026/1/10 2:28:50
大理州城乡建设局官方网站,成立外贸公司的流程,哪个设计网站赚钱,一些做义工的旅游网站如果你经常搞混 深浅拷贝 和 引用赋值#xff0c;总是记不住它们有什么区别#xff0c;在实际开发中总是踩坑——比如不小心修改了原始数据、或者拷贝不彻底导致奇怪的 bug——那么恭喜你#xff0c;这篇文章就是为你写的#xff01;我会用最直白的语言、清晰的图示和大量实…如果你经常搞混 深浅拷贝 和 引用赋值总是记不住它们有什么区别在实际开发中总是踩坑——比如不小心修改了原始数据、或者拷贝不彻底导致奇怪的 bug——那么恭喜你这篇文章就是为你写的我会用最直白的语言、清晰的图示和大量实际代码示例帮你一次性彻底搞懂在深入探讨拷贝机制之前我们需要先了解 JavaScript 的数据类型分类和内存存储机制的基础概念一、基础概念铺垫1. JavaScript 数据类型分类基本数据类型字符串String、数字(Number)、布尔(Boolean)、空Null、未定义Undefined、Symbol、BigInt。引用数据类型对象(Object)、数组(Array)、函数(Function)还有两个特殊的对象正则RegExp、日期Date、正则表达式、Map、Set、和其他内置对象比如Promise、Error等)2. 内存存储机制核心原理JS 引擎将内存划分为栈内存Stack和堆内存Heap不同类型的数据会被分配到不同的内存区域嵌套引用依旧遵循下列规则特性栈内存 (Stack)堆内存 (Heap)存储内容基本数据类型值、引用类型的指针引用数据类型的实际内容数据结构后进先出 (LIFO)动态分配的树/图结构分配方式连续内存自动分配随机内存动态分配访问速度极快直接CPU访问较慢通过指针间接访问大小限制小通常1-8MB大可达GB级生命周期函数/块作用域结束自动释放由垃圾回收器(GC)管理如上图所示两种数据类型的内存访问流程如下所示基本数据类型的变量直接从栈内存中获取数据引用数据类型的变量访问过程读取栈内存中的指针地址通过指针找到堆内存中存储的实际数据二、不同类型的拷贝行为1. 基本数据类型的拷贝基本数据类型的拷贝非常简单由于它们直接存储在栈内存中拷贝时会直接复制值本身不存在引用关系。let a 10; let b a; // 直接复制值 b 20; console.log(a); // 10不受 b 修改影响 console.log(b); // 202. 引用数据类型的拷贝方式一引用赋值非拷贝引用数据类型在赋值时默认是引用赋值即复制指针地址而非复制实际内容。这意味着两个变量会指向堆内存中的同一个对象。修改其中一个另一个会受影响。let a [1, 2, 5]; let b a; // 引用赋值复制指针 a[1] 4; // 修改 a 指向的数组 console.log(a); // [1, 4, 5] console.log(b); // [1, 4, 5]b 也受影响 console.log(a b); // true指向同一个对象方式二 浅拷贝浅拷贝是针对引用类型的拷贝方式它会创建一个新对象但只复制对象的第一层属性。其规则是对基本类型属性直接复制值对引用类型属性仅复制指针不复制指向的对象本身示例1:对数组a [1, 2, [3, 4], 5]进行浅拷贝得到b后b[0]、b[1]、b[3]是基本类型修改它们不会影响ab[2]是引用类型数组修改b[2]会同时影响a[2]因为它们指向同一个子数组const a [1, 2, [3, 4], 5]; const b [...a]; // 浅拷贝 a[0] 100; console.log(b[0]); // 1不受影响基本类型独立 a[2][1] 400; // 修改子数组元素 console.log(b[2][1]); // 400受影响共享子数组引用示例2// 原始对象 const a { name: alice, // 基本类型栈内存存储值 profile: { // 引用类型堆内存存储对象栈内存存储指针 age: 25, city: beijing } }; // 使用扩展运算符进行浅拷贝 const b { ...a }; // 修改浅拷贝对象 b.name bob; b.profile.age 30; b.profile.city shanghai; // 查看结果 console.log(原始对象 a.name:, a.name); // 输出alice基本类型值独立不受影响 console.log(原始对象 a.profile.age:, a.profile.age); // 输出30引用类型共享堆内存被修改 console.log(原始对象 a.profile.city:, a.profile.city); // 输出shanghai引用类型共享堆内存被修改 console.log(a.profile b.profile:, a.profile b.profile); // 输出true两者指向堆中同一个对象常见的浅拷贝方法扩展运算符推荐const obj { a: 1, b: { c: 2 } }; const shallowCopy { ...obj };Object.assign()const obj { a: 1, b: { c: 2 } }; const shallowCopy Object.assign({}, obj);数组的 slice()、concat() 方法const arr [1, 2, { a: 3 }]; const shallowCopy1 arr.slice(); const shallowCopy2 [].concat(arr);Array.from()const arr [1, 2, { a: 3 }]; const shallowCopy Array.from(arr);方式三、深拷贝深拷贝会创建一个全新的对象完全复制原始对象的所有层级属性包括嵌套的引用类型使得新旧对象完全独立。实现方式 1JSON 方法最常用但有局限// 原始对象 const a { name: alice, // 基本类型栈内存存储值 profile: { // 引用类型堆内存存储对象 age: 25, city: beijing } }; // 实现深拷贝 const deepCopy JSON.parse(JSON.stringify(a)); // 修改深拷贝对象的属性 deepCopy.name bob; // 修改基本类型 deepCopy.profile.age 30; // 修改嵌套引用类型 deepCopy.profile.city shanghai; // 查看结果对比 console.log(原始对象 a.name:, a.name); // 输出alice基本类型不受影响 console.log(原始对象 a.profile.age:, a.profile.age); // 输出25嵌套引用类型也不受影响 console.log(原始对象 a.profile.city:, a.profile.city); // 输出beijing嵌套引用类型完全独立 console.log(a.profile deepCopy.profile:, a.profile deepCopy.profile); // 输出false两者指向堆中不同对象注意限制无法复制函数、undefined、Symbol日期对象会被转换为字符串无法处理循环引用会丢失原型链信息实现方式 2递归实现自定义深拷贝函数由于递归实现较为复杂这里不展开详细代码但基本原理是遍历对象的所有属性对引用类型属性递归调用拷贝函数直到所有层级都被复制。三、深浅拷贝对比总结类型引用类型内存地址第一层修改第二层修改引用赋值引用复制相同相互影响相互影响浅拷贝仅第一层值复制嵌套层引用复制不同独立相互影响深拷贝完全复制不同独立独立深浅拷贝的核心区别在于对嵌套引用类型的处理方式这直接决定了拷贝后对象的独立性引用赋值:本质上不是拷贝只是复制了对象的引用指针。两个变量共享同一块堆内存任何层级的修改都会相互影响内存地址相同。浅拷贝:创建新的内存地址存储对象但仅对第一层属性进行值复制。对于基本类型属性修改后彼此独立但对于嵌套的引用类型属性仍共享原始引用修改会相互影响。深拷贝:完全创建新的对象递归复制所有层级的属性包括嵌套引用类型。新旧对象拥有完全独立的内存空间任何层级的修改都不会相互影响内存地址不同。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站游戏案例uemo网站平台建设

在无线网络中有一种故障极具欺骗性:终端显示Wi-Fi已连接,信号强、速率高、无漫游,但所有业务访问失败,重连、换AP、重启终端都无效。这类问题90%不在射频也不在链路,而是在AC与AP的控制 / 数据平面关系被悄悄切断 一、故障现象:无线看起来一切正常但完全不能用 用户侧反…

张小明 2026/1/4 13:16:28 网站建设

教新手做网站难吗注册销售公司流程和费用

腾讯混元语音数字人模型开源落地,三大音乐平台率先应用开启内容创作新纪元 【免费下载链接】HunyuanVideo-Avatar HunyuanVideo-Avatar:基于多模态扩散Transformer的音频驱动人像动画模型,支持生成高动态、情感可控的多角色对话视频。输入任意…

张小明 2026/1/4 13:16:25 网站建设

西宁工程建设招聘信息网站个人网站创建与管理

中石油旗下子公司大文件传输系统技术方案 一、项目背景与需求分析 作为中石油集团旗下专注于能源信息化领域的子公司,我司长期服务于政府及军工单位,在能源管理、安全生产等关键领域积累了丰富的行业经验。本次政府招投标项目提出的大文件传输需求具有…

张小明 2026/1/10 2:12:19 网站建设

爱站网挖掘关键词建筑网校排行榜

在人工智能与大数据时代,数据已成为驱动决策的核心要素。对于软件测试从业者而言,数据管道测试正成为不可或缺的专业能力。本文旨在系统阐述数据管道测试的方法论与实践策略,帮助测试团队构建完善的数据质量保障体系。 数据管道测试的核心价…

张小明 2026/1/4 13:16:15 网站建设

曰本做爰视频网站网络营销上市公司

数据简介 CNPaperData 本数据是CNPD中国政府采购数据库(创新采购模块)的拓展本——与上市公司匹配所得样本。我们使用了双层递进式匹配方法,首先对上市主体公司进行优先匹配,随后对未匹配记录进行子公司匹配,最终构建…

张小明 2026/1/4 13:16:12 网站建设

pdf怎么做电子书下载网站怎么制作网站软件

天塔之光组态王6.55和西门子1200PLC联机程序3ok,博途15组态王和西门子PLC的联机调试在工业自动化里算是经典组合了。这次用天塔之光组态王6.55对接S7-1200,博途V15的环境配置,实测下来最头疼的还是通信协议的匹配。先上硬货——直接看PLC数据…

张小明 2026/1/4 13:16:10 网站建设