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

黑龙江建设厅网站 孙宇传媒公司产品宣传片

黑龙江建设厅网站 孙宇,传媒公司产品宣传片,手机网站的宽度,制作网站备案幕布#x1f449;十分钟学会 前端面试题 js 深拷贝与浅拷贝_前端深拷贝和浅拷贝面试题_Mar-30的博客-CSDN博客 目录 背景#xff1a; 概念#xff1a;核心是创建新地址 方法#xff1a; 浅拷贝#xff1a; Object.assign() 方法#xff1a;Object.assign(拷贝的对象十分钟学会 前端面试题 js 深拷贝与浅拷贝_前端深拷贝和浅拷贝面试题_Mar-30的博客-CSDN博客 目录 背景 概念核心是创建新地址 方法 浅拷贝 Object.assign() 方法Object.assign(拷贝的对象原始对象) ... 展开运算符方法{...原始对象} 浅拷贝的局限性bug  深拷贝 通过递归实现深拷贝 注意在递归函数内部调用fn前加上return JSON.stringify()   JSON.parse()方法工作使用 这种方法的缺陷函数方法和undefined会丢失 lodash 背景 开发中我们经常需要复制一个对象。如果直接用赋值会有问题将对象p1赋值给p2改变p2里面属性的值p1里面对应的值也会被改变。改变原因因为赋值的时候是直接拷贝对象栈里面的地址p1和p2的地址相同所以修改会将两个一起改变。p1和p2可以看下面代码 概念核心是创建新地址 浅拷贝 将一个对象的所有属性拷贝到另一个对象  并且改变拷贝的对象 不影响原始对象浅拷贝只能拷贝一层对象或者一层数组 深拷贝 将一个对象的所有属性拷贝到另一个对象  并且改变拷贝的对象 也不影响含多层对象的原始对象  方法 浅拷贝 Object.assign() 方法Object.assign(拷贝的对象原始对象) script// 创建一个p1对象const p1 {name: 小白,age: 18}const p2 {}Object.assign(p2, p1)console.log(p2); //{ name: 小白,age: 18}p2.name 小黑console.log(p2); //{name: 小黑, age: 18}console.log(p1); //{ name: 小白,age: 18}/script ... 展开运算符方法{...原始对象} script// 创建一个p1对象const p1 {name: 小白,age: 18}const p2 {...p1}console.log(p2); //{ name: 小白,age: 18}p2.name 小黑console.log(p2); //{name: 小黑, age: 18}console.log(p1); //{ name: 小白,age: 18}/script 浅拷贝的局限性bug  浅拷贝的问题: 当原始对象里面的属性值是复杂数据类型的时候 浅拷贝就会有bug浅拷贝没有对这个值创建新地址。简单来说就是浅拷贝 只能拷贝一层对象或者一层数组 bug的来源就是如果原始对象有嵌套对象的时候那么他还是采用等号赋值 地址依然一样在堆里面值只有一份 点开第一个p2的打印所指向的内存地址已经发生了变化进而数组项数据也发生了变化。  数组的变异方法会直接改变数组的内存地址就是改变原数组由于数组是引用数据类型(复杂数据类型)内存地址是一样的显示的是原来的结果。但包含修改后的结果.(浅拷贝拷贝栈里面的指针)。js之数组打印看到长度和实际长度不同浅拷贝_js 数组添加线上的 4 结果只有2_六卿的博客-CSDN博客 深拷贝 通过递归实现深拷贝 函数递归 如果一个函数在内部可以调用其本身那么这个函数就是递归函数。简单理解:函数内部自己调用自己, 这个函数就是递归函数。递归函数的作用和循环效果类似由于递归很容易发生“栈溢出”错误stack overflow所以必须要加退出条件 return 递归实现深拷贝代码如下 注意在递归函数内部调用fn前加上return 原因在递归函数内部调用fn时没有return也就没有值返回给最外层的函数 JS递归函数return返回undefined_js递归返回undefined_醒醒快学习的博客-CSDN博客  JSON.stringify()   JSON.parse()方法工作使用 1、JSON.stringify() 将对象转换为字符串2、JSON.parse() 转换为复杂数据类型 为什么可以这样写因为关键就是创建新地址字符串是普通数据类型地址在栈里面JSON.stringify()转换成字符串就是一个新地址  。 这种方法的缺陷函数方法和undefined会丢失 lodash 利用js库 lodash里面的  _.cloneDeep() lodash工具库https://www.lodashjs.com/   script src./lodash.min.js/scriptscript// 1.创建初始对象const p1 {name: 小白,age: 18,address: {province: 北京,citys: 东城区}}// 转换const p2 _.cloneDeep(p1) //深拷贝console.log(p2); //{ name: 小白,age: 18,address: {province: 上海, citys: 东城区}}// 3.改变拷贝对象里面的 多层对象的值原始的对象里面的值就不会被改变了p2.address.province 上海console.log(p2); //{ name: 小白,age: 18,address: {province: 上海, citys: 东城区}}console.log(p1); //{ name: 小白,age: 18,address: {province: 北京, citys: 东城区}}/script
http://www.hkea.cn/news/14393863/

相关文章:

  • 阿里云网站域名申请wordpress 4.8
  • 网站开发发展方向做app和做网站那个难
  • 一级a做爰小说免费网站襄城县城乡建设管理局网站
  • 网站开发的大致流程wordpress后台系统
  • 雄安建设集团有限公司网站asp网站背景
  • 代运网站网站制作费用是多少
  • 商城网站开发模板建设淘宝网站需要多少钱
  • 微网站教程网站建设与管理实训报告总结
  • 建设咖啡厅网站的意义网络平台建设怎么做
  • 深圳做商城网站建设网页设计课程心得体会
  • 网站如何被搜索到网站建设中 页面
  • 网站是用sql2012做的_在发布时可以改变为2008吗高端网站建设那公司好
  • 网站开发素材代码深圳网站建设最好
  • 模板建站系统互联网app下载
  • 卖辅助网站怎么做的91色做爰网站
  • 网站开发服务费入什么科目广告设计公司的简介怎么写
  • 禁止显示网站目录网站服务器返回状态码404
  • 自己如何做网站教程网页网站设计培训
  • 深圳建设管理中心网站首页邢台信息港人力资源
  • 哪些网站可以做淘宝推广微信上开网店怎么开
  • wordpress固定连接淮安做网站seo
  • 网站优化建议书网站代码素材建设
  • 设计logo网站免费下载物流网站模板下载
  • 做网站定制开发的公司千锋教育的官网
  • 做网站给不给源代码信阳工程建设一体化平台网站
  • 九江网站建设排行榜站酷网logo素材图库
  • 建设项目公示网站网站制做工具
  • 产品展示网站含后台网站模板下载宁波网站建设哪里便宜
  • 网站开发推进计划表企业集团网站网站建设方案
  • 杭州网站建设专家无锡网站服务公司