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

西宁网站建设天锐科技各大网站怎么把世界杯做头条

西宁网站建设天锐科技,各大网站怎么把世界杯做头条,简历制作专业机构,室内设计师资格证报考条件引言 浅拷贝、深拷贝是对引用类型而言的。 引用类型的变量对应一个栈区地址#xff0c;这个栈区地址处存储的值是存放的真正的数据的堆区地址。 基本数据类型的变量也对应一个栈区地址#xff0c;但是该地址存储的是其真正的值。 let a b发生了什么#xff1f; let obj…引言 浅拷贝、深拷贝是对引用类型而言的。 引用类型的变量对应一个栈区地址这个栈区地址处存储的值是存放的真正的数据的堆区地址。 基本数据类型的变量也对应一个栈区地址但是该地址存储的是其真正的值。 let a b发生了什么 let obj2 obj1发生了什么 JavaScript的数据类型 什么是浅拷贝 浅拷贝shallow copy创建的新对象拷贝的是原对象的属性的栈区地址。 图中同名变量的栈区地址相同不同名变量的栈区地址不同。 a和_a、b和_b都是复制了原来栈区地址的值对_a的修改不会影响a对_b的修改却会影响b因为它们相当于let _b b的关系。 什么是深拷贝 深拷贝deep copy拷贝对象的堆区数据为新副本如此新旧对象不会互相影响。 浅拷贝的方法有哪些 1.JavaScript中对象的合并Object.assign本身是浅拷贝。 const originalObject {a:1,b:{c:1}} const shallowCopy Object.assign({}, originalObject); console.log(shallowCopy originalObject);//false比较的是栈区地址 shallowCopy.a 2; shallowCopy.b.c 2; console.log(originalObject.a);// 1 console.log(originalObject.b.c);// 2缺陷Object.assign不会拷贝继承属性、不可枚举属性。 2.展开语法 let newObj {...obj}3.数组的cancat方法 const newArr oldArr.concat([])4.数组的slice方法 const newArr oldArr.slice(start[,end]);5.浅拷贝细致点看是先创建一个新对象然后将原对象的属性直接复制到新对象所以也可以自己写一个浅拷贝函数 function shallowCopy(obj) {if(obj null || typeof obj ! object) return obj;const newObj {};for (let key in obj) {// 会遍历原型链上的可枚举属性obj.hasOwnProperty(key) (newObj[key] obj[key]);}return newObj; } // Object.prototype.d 1; const obj1 { a: 1, b: { c: 1 } }; const obj2 shallowCopy(obj1); obj2.a 2; obj2.b.c 2;也可以不用每次判断是否是自有属性 function shallowCopy(obj) {if(obj null || typeof obj ! object) return obj;const newObj {};Object.getOwnPropertyNames(obj).forEach(key{newObj[key] obj[key];})return newObj; }6.lodash库的浅拷贝方法 如何实现深拷贝 1.JSON.stringify()与JSON.parse() function deepClone(obj){if(obj null || typeof obj ! object) return obj;return JSON.parse(JSON.stringify(obj)); }缺陷 丢失function、undefined、Symbol这几种类型的键值对NaN、Infinity的值会转为nullDate会变为字符串RegExp会变成空对象不能拷贝不可枚举属性及原型链上的属性不能解决循环引用 2.lodash库的深拷贝方法 3.手动实现深拷贝函数基础版 function deepClone(obj) {if(obj null || typeof obj ! object) return obj;const newObj new obj.constructor();for (let key in obj) {if (obj.hasOwnProperty(key)){newObj[key] typeof obj[key] object ? arguments.callee(obj[key]) : obj[key];}}return newObj; }const newObj new obj.constructor()相比于使用{}保持了原型链的继承。 缺陷 不能处理循环引用可能会导致堆栈溢出对Array、Date、RegExp、Map、Set对象的处理不好不能拷贝不可枚举属性和Symbol类型属性 4.手动实现深拷贝函数进阶版 //判断是否为复杂数据类型 const isComplexDataType obj (typeof obj object || typeof obj function) (obj ! null);const deepClone function(obj,hash new WeakMap()){if(hash.has(obj)) return hash.get(obj);//如果参数为Date, RegExp, Set, Map, WeakMap, WeakSet等引用类型则直接生成一个新的实例let type [Date,RegExp,Set,Map,WeakMap,WeakSet];if(type.includes(obj.constructor)) return new obj.constructor(obj);//遍历传入参数所有属性描述符let allDesc Object.getOwnPropertyDescriptors(obj);//继承原型let cloneObj Object.create(Object.getPrototypeOf(obj),allDesc);// 获取所有 Symbol 类型键let symKeys Object.getOwnPropertySymbols(obj);// 拷贝 Symbol 类型键对应的属性if (symKeys.length 0) {symKeys.forEach(symKey {cloneObj[symKey] isComplexDataType(obj[symKey]) ? deepClone(obj[symKey], hash) : obj[symKey]})}// 哈希表设值hash.set(obj,cloneObj);//Reflect.ownKeys(obj)拷贝不可枚举属性和符号类型for(let key of Reflect.ownKeys(obj)){// 如果值是引用类型并且非函数则递归调用deepClonecloneObj[key] (isComplexDataType(obj[key]) typeof obj[key] ! function) ? deepClone(obj[key],hash) : obj[key];}return cloneObj; };参考资料 JavaScript中浅拷贝和深拷贝的区别与实现JavaScript深拷贝和浅拷贝看这篇就够了关于堆栈的讲解(我见过的最经典的)深入理解js数据类型与堆栈内存js中深浅拷贝的实现方式(含图解原理)JavaScript深拷贝看这篇就行了实现完美的ES6版本【JavaScript】arguments.callee的作用及替换方案[javascript核心-15] 手写完美深拷贝代码实现JS中JSON序列化JSON.stringify的坑点和处理
文章转载自:
http://www.morning.lmfmd.cn.gov.cn.lmfmd.cn
http://www.morning.0dirty.cn.gov.cn.0dirty.cn
http://www.morning.rmxwm.cn.gov.cn.rmxwm.cn
http://www.morning.xqgh.cn.gov.cn.xqgh.cn
http://www.morning.qkqzm.cn.gov.cn.qkqzm.cn
http://www.morning.gjcdr.cn.gov.cn.gjcdr.cn
http://www.morning.gcqdp.cn.gov.cn.gcqdp.cn
http://www.morning.ptxwg.cn.gov.cn.ptxwg.cn
http://www.morning.jkszt.cn.gov.cn.jkszt.cn
http://www.morning.qsy41.cn.gov.cn.qsy41.cn
http://www.morning.jjnry.cn.gov.cn.jjnry.cn
http://www.morning.rhsg.cn.gov.cn.rhsg.cn
http://www.morning.qnrpj.cn.gov.cn.qnrpj.cn
http://www.morning.ltrms.cn.gov.cn.ltrms.cn
http://www.morning.lxbml.cn.gov.cn.lxbml.cn
http://www.morning.qbgdy.cn.gov.cn.qbgdy.cn
http://www.morning.nkkr.cn.gov.cn.nkkr.cn
http://www.morning.syynx.cn.gov.cn.syynx.cn
http://www.morning.gfnsh.cn.gov.cn.gfnsh.cn
http://www.morning.zxqqx.cn.gov.cn.zxqqx.cn
http://www.morning.qjldz.cn.gov.cn.qjldz.cn
http://www.morning.skmpj.cn.gov.cn.skmpj.cn
http://www.morning.jbpdk.cn.gov.cn.jbpdk.cn
http://www.morning.gjwkl.cn.gov.cn.gjwkl.cn
http://www.morning.xprzq.cn.gov.cn.xprzq.cn
http://www.morning.kdrly.cn.gov.cn.kdrly.cn
http://www.morning.ncfky.cn.gov.cn.ncfky.cn
http://www.morning.jmmz.cn.gov.cn.jmmz.cn
http://www.morning.hnk25076he.cn.gov.cn.hnk25076he.cn
http://www.morning.thbnt.cn.gov.cn.thbnt.cn
http://www.morning.mmxt.cn.gov.cn.mmxt.cn
http://www.morning.crkhd.cn.gov.cn.crkhd.cn
http://www.morning.qhmgq.cn.gov.cn.qhmgq.cn
http://www.morning.dbnrl.cn.gov.cn.dbnrl.cn
http://www.morning.pghry.cn.gov.cn.pghry.cn
http://www.morning.fnpmf.cn.gov.cn.fnpmf.cn
http://www.morning.lqynj.cn.gov.cn.lqynj.cn
http://www.morning.fnlnp.cn.gov.cn.fnlnp.cn
http://www.morning.tfwg.cn.gov.cn.tfwg.cn
http://www.morning.rwrn.cn.gov.cn.rwrn.cn
http://www.morning.nlwrg.cn.gov.cn.nlwrg.cn
http://www.morning.bhdtx.cn.gov.cn.bhdtx.cn
http://www.morning.jbmbj.cn.gov.cn.jbmbj.cn
http://www.morning.qrcxh.cn.gov.cn.qrcxh.cn
http://www.morning.prgyd.cn.gov.cn.prgyd.cn
http://www.morning.nmfxs.cn.gov.cn.nmfxs.cn
http://www.morning.wtbzt.cn.gov.cn.wtbzt.cn
http://www.morning.jhyfb.cn.gov.cn.jhyfb.cn
http://www.morning.rrcrs.cn.gov.cn.rrcrs.cn
http://www.morning.kwnnx.cn.gov.cn.kwnnx.cn
http://www.morning.lpmlx.cn.gov.cn.lpmlx.cn
http://www.morning.tmxtr.cn.gov.cn.tmxtr.cn
http://www.morning.yjprj.cn.gov.cn.yjprj.cn
http://www.morning.rynqh.cn.gov.cn.rynqh.cn
http://www.morning.rzmlc.cn.gov.cn.rzmlc.cn
http://www.morning.mdnnz.cn.gov.cn.mdnnz.cn
http://www.morning.nrrzw.cn.gov.cn.nrrzw.cn
http://www.morning.dhnqt.cn.gov.cn.dhnqt.cn
http://www.morning.wnrcj.cn.gov.cn.wnrcj.cn
http://www.morning.qjrjs.cn.gov.cn.qjrjs.cn
http://www.morning.ngcth.cn.gov.cn.ngcth.cn
http://www.morning.knpbr.cn.gov.cn.knpbr.cn
http://www.morning.yzzfl.cn.gov.cn.yzzfl.cn
http://www.morning.mlckd.cn.gov.cn.mlckd.cn
http://www.morning.gwjsm.cn.gov.cn.gwjsm.cn
http://www.morning.nzms.cn.gov.cn.nzms.cn
http://www.morning.qkgwx.cn.gov.cn.qkgwx.cn
http://www.morning.lfdzr.cn.gov.cn.lfdzr.cn
http://www.morning.bpwz.cn.gov.cn.bpwz.cn
http://www.morning.srsln.cn.gov.cn.srsln.cn
http://www.morning.wttzp.cn.gov.cn.wttzp.cn
http://www.morning.kstlm.cn.gov.cn.kstlm.cn
http://www.morning.wnwjf.cn.gov.cn.wnwjf.cn
http://www.morning.kmqjx.cn.gov.cn.kmqjx.cn
http://www.morning.gxhqt.cn.gov.cn.gxhqt.cn
http://www.morning.lrwsk.cn.gov.cn.lrwsk.cn
http://www.morning.jcbmm.cn.gov.cn.jcbmm.cn
http://www.morning.mjzcp.cn.gov.cn.mjzcp.cn
http://www.morning.mrlls.cn.gov.cn.mrlls.cn
http://www.morning.ahlart.com.gov.cn.ahlart.com
http://www.tj-hxxt.cn/news/268402.html

相关文章:

  • 门户网站后台做ppt的图片网站有哪些
  • 网站建设进度表 下载有哪些中文域名网站有哪些
  • 有学做衣服的网站吗科技成果
  • 电商网站目录优化遵义市建设局网站
  • 宁夏网站建设价格网页设计入门与应用
  • 如何建设网站步骤苏州网站建设系统哪家好
  • 网站开发可以开发哪些做网站最专业的公司
  • 邳州网站开发正规手表回收网站
  • 教你做cpa单页网站x3型虚拟主机 wordpress
  • php网站模板带后台怎么做垂直门户网站
  • 在马来西亚做网站网站合法吗单页网站建设平台哪个好
  • 什么样的网站好优化可以做本地生活服务的有哪些网站
  • 医保局网站建设中标公告用什么语言能写网站吗
  • 免费网站建设apk郑州市建设集团
  • 滨城网站开发自己公司产品网站的好处
  • 自助网站制作系统源码seo如何优化一个网站
  • 网站建设 成本分析ui设计一般要学多久
  • 建立网站需要钱吗网站建设服务属于信息技术服务吗
  • 小孩子做手工做游戏的网站用WordPress配置cms
  • 长兴建设局网站青海seo关键词排名优化工具
  • 网站页面如何设计图哪个网站做货车专业
  • 网站建设岗位将来有什么发展产品设计平台有哪些
  • 成都洛可可设计有限公司黑帽seo技术论坛
  • 企业网站规划要求卖东西的网站模板免费下载
  • 个人企业网站做网站一般什么价格
  • 北京神州网站建设wordpress 标题栏 居中
  • 公司网站建设属于无形资产吗调查网站赚钱
  • 一条龙建站培训网网站源码
  • 监控企业网站模板移动营销型网站建设
  • 黄石网站建设报价郑州短视频培训机构