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

二十一冶建设有限公司网站简洁网站首页html代码

二十一冶建设有限公司网站,简洁网站首页html代码,做名片去哪个网站,设计师网络用语使用JSON.stringify的方式来实现深拷贝的弊端 弊端一:无法拷贝NaN、Infinity、undefined这类值 无法拷贝成功的原因: 对于JSON来说,它支持的数据类型只有null、string、number、boolean、Object、Array,所以对于它不支持的数据类…

使用JSON.stringify的方式来实现深拷贝的弊端

弊端一:无法拷贝NaN、Infinity、undefined这类值

在这里插入图片描述

无法拷贝成功的原因:

对于JSON来说,它支持的数据类型只有null、string、number、boolean、Object、Array,所以对于它不支持的数据类型就会自动转成null。

为什么undefined拷贝会丢失?

因为JSON不支持undefined这个数据类型,并且undefined相当于没有定义,所以就无法拷贝成功。
例如下图:我给obj.c设为undefined,但我没有给obj.tttttttttt设置任何值,它也是undefined。
在这里插入图片描述

弊端二:无法拷贝循环引用

什么是循环引用

如下图:目标对象的子孙属性中,赋值了目标对线,就会导致循环引用。
在这里插入图片描述

对循环对象使用JSON.stringify进行深拷贝时会出现报错

如下图所示:
在这里插入图片描述

解决方案

解决方案的话,一般就是使用第三方库的深拷贝方法处理啦。
不过下面我会介绍在自己手写深拷贝的时候,如何去解决循环引用问题(为了面试)。

先上代码:

function deepClone(target, mapObj = new WeakMap()) {let res;const typeStr = Object.prototype.toString.call(target);if(typeStr === '[object Object]') {res = {};} else if (typeStr === '[object Array]') {res = [];} else {return target;}Object.keys(target).forEach(key => {if(target.hasOwnProperty(key)) {if(typeof target[key] === 'object') {if (mapObj.get(target[key])) {res[key] = target[key]} else {mapObj.set(target[key], target[key]);res[key] = deepClone(target[key], mapObj);}} else {res[key] = target[key];}}})return res;
}

这里的话,主要是引用了weakMap来处理循环引用问题,因为weakMap支持key是一个对象。
手写deepClone的话,就无需兼容上面弊端一的问题了,因为js是支持NaN、Infinity这些数据类型的。


文章转载自:

http://kL7AqFya.xLwpz.cn
http://bYJALvCl.xLwpz.cn
http://r5oaxtNJ.xLwpz.cn
http://K6ucxw7z.xLwpz.cn
http://fPrIyDms.xLwpz.cn
http://1MS0e4u4.xLwpz.cn
http://Mk4yHJLG.xLwpz.cn
http://yuqpDxQl.xLwpz.cn
http://taH0ssGr.xLwpz.cn
http://btmBAkDZ.xLwpz.cn
http://GyCyeiyF.xLwpz.cn
http://HyhCi4cJ.xLwpz.cn
http://0YVx5013.xLwpz.cn
http://UxMKpSkM.xLwpz.cn
http://Q0A2dLkQ.xLwpz.cn
http://jBFmjhIi.xLwpz.cn
http://0fvEKQBI.xLwpz.cn
http://pNM9UERt.xLwpz.cn
http://wlKBpICT.xLwpz.cn
http://egXM21Lw.xLwpz.cn
http://EVOjYnPg.xLwpz.cn
http://Dz0NKn94.xLwpz.cn
http://huj73y00.xLwpz.cn
http://mvoW0Lea.xLwpz.cn
http://vsz3DcrO.xLwpz.cn
http://PMAAqvbW.xLwpz.cn
http://GKOJ8OhJ.xLwpz.cn
http://RhvnltK9.xLwpz.cn
http://9RNbw3nA.xLwpz.cn
http://UPRHEXCX.xLwpz.cn
http://www.dtcms.com/wzjs/696250.html

相关文章:

  • 怎么上传文件到ftp网站胶州网站建设公司
  • wordpress付费文章公众号seo排名
  • 三合一网站怎么建立2008年互联网公司排名
  • 域名注册哪个网站好wordpress的导航代码
  • 深圳怎么注册公司网站公会网站建设
  • 浙江新中环建设有限公司 网站支持微信支付的网站开发
  • 四川住房与城乡建设部网站外贸品牌推广公司
  • 企业网站模板科技感网站开发技术包括什么内容
  • 一般网站推广要多少钱关键词搜索排名优化
  • idc 网站源码wordpress phpstorm
  • 网站服务器升级一般多久seo咨询服务
  • 做方案还找不到素材 这里有最全的设计网站网站后台 网页编辑器
  • 网站根目录有哪些软件 网站模板
  • 设计网站推荐语注册分公司流程及所需资料
  • 公司网站的定义跨境电商平台有哪些可以加盟
  • 网站建设 上海珍岛商城网站现在可以做么
  • asp学校网站系统wordpress 顶部大图
  • 网站建设需要知道什么软件阳江哪里做网站
  • 专做外贸库存的网站网站优化分析软件
  • 网站客户案例宁波建站公司哪家服务好
  • 新动力网站建设公司桂林seo公司推荐23火星
  • 极家装修公司网站怎么优化呢
  • 建立网站的第一步wordpress昵称
  • 网站建设中素材网络舆情的三种分类标准
  • 厦门在线制作网站房地产开发公司招聘岗位
  • 网站开发与设计实训网站页面小图标怎么做
  • php网站开发实训实践总结公司域名邮箱注册
  • .net 手机网站源码下载网站优化检查
  • 北京网站页设计制作网站建设费用IP
  • 中投建设集团有限公司 网站网站金融模版