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

自适应产品网站模板/百度首页纯净版

自适应产品网站模板,百度首页纯净版,手机做任务的网站有哪些内容,有字体设计网站使用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://www.ho-use.cn/article/440.html

相关文章:

  • 企业网站建设ppt模板/百度竞价排名查询
  • 做网站制作一般多少钱/快速seo整站优化排行
  • 企业网站推广哪些效果比较好/360推广登陆入口
  • 网站建设服务哪家好/二级不死域名购买
  • 我想做京东网站淘宝怎么做/创建一个网站需要什么
  • 用什么软件做公司网站/新疆疫情最新情况
  • 衢州站扩建/seo推广怎么收费
  • 淄博做网站优化/关键词优化排名用哪个软件比较好
  • asp.net网站开发详解/百度权重排名
  • wordpress建站和定制网站Seo/网站源码建站
  • 济南活动搭建公司/云优客seo排名公司
  • 怎么样新建一个网站/seo分析师
  • 商城网站设计企业/自媒体135网站
  • 地产网站怎么做/sem投放
  • java如何做网站/成都关键词优化排名
  • 国际购物网站排名/广告策划方案范文
  • 柳州网站建设33/武汉新闻最新消息
  • 重庆做网站开发的公司有哪些/网站推广去哪家比较好
  • 网页设计师做什么/正规seo关键词排名哪家专业
  • 装修怎么做网站/商品关键词怎么优化
  • 新手如何自己做网站谷歌广告联盟
  • 网站的前期调研怎么做/网络营销学什么内容
  • 网站是怎么做优化/企业网站搭建
  • 烟台H5高端网站建设/百度seo快速
  • 上广东建设厅网站/宁波抖音seo搜索优化软件
  • 怎么做网站扩展/seo俱乐部
  • html做网站的代码/总裁班课程培训
  • 怎样做视频上网站赚钱/企业网站营销实现方式
  • 国外可以做网站盈利模式有哪些/网站优化推广价格
  • 网站建设方案总结/优秀软文范例200字