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

福建住房和城乡建设部网站win10系统优化软件

福建住房和城乡建设部网站,win10系统优化软件,外贸网站服务器选择,网站导航栏下面的文章ES6中提出的对象展开运算符“…”就是用来展开元素的。有了它就不用代码循环遍历了,偷懒专用。 1. 合并数组 展开原有数组中的所有元素,可以合并成一个新的数组。 var a[1,2,3]; var b[4,5,6]; var c[...a,...b]; console.log(c) // 输出:…

ES6中提出的对象展开运算符“…”就是用来展开元素的。有了它就不用代码循环遍历了,偷懒专用。

1. 合并数组

展开原有数组中的所有元素,可以合并成一个新的数组。

var a=[1,2,3];
var b=[4,5,6];
var c=[...a,...b];
console.log(c) // 输出:[1, 2, 3, 4, 5, 6]
console.log(a) // 输出:[1, 2, 3]
console.log(b) // 输出:[4, 5, 6]

2. 合并对象

展开对象中的所有属性,可以合并成一个新的对象。

var person = {name: '小明',age: 18,sex: '男',
};
var hobby = {play: '篮球',like: '吃饭、睡觉、打游戏',
};
var xiaoMing = {...person,...hobby};
console.log(xiaoMing); // { name: '小明', age: 18, sex: '男', play: '篮球', like: '吃饭、睡觉、打游戏' }

当对象中包含同名参数时,后面的会把前面的同名属性覆盖掉。

// 接上面的代码
var xiaoGang = {...person,...hobby,...{name:'小刚',play:'足球'},
};
console.log(xiaoGang); // { name: '小刚', age: 18, sex: '男', play: '足球', like: '吃饭、睡觉、打游戏' }

3. 对象展开运算符是浅拷贝还是深拷贝?

先来了解下,浅拷贝和深拷贝各自的含义。

数据可以分为两大类:一类是基本数据,一类是引用数据;而数据存储位置又可分为栈和堆。

基本数据:存储在栈中,

引用数据:栈中存储了一个地址,这个地址指向堆中的真实数据。

由此:

浅拷贝:在栈中新开辟了一个空间,复制的是栈中的地址,改地址指向的依旧是原来堆的数据。

深拷贝:在栈和堆中均重新开辟了空间,新的地址指向的是新的数据,老地址指向的是老数据,所以无论新旧数据哪个发生变化,都不会影响另一个。

下面看一个浅拷贝的例子:

var person = {name: '小明',age: 18,sex: '男',
}var xiaoHong = person; // 这里只是将引用变量person1给了xiaoHong
xiaoHong.name = '小红';console.log(person) // 输出:{name: "小红", age: 18, sex: "男"}
console.log(xiaoHong)// 输出:{name: "小红", age: 18, sex: "男"}

由上面的例子,很清楚的看到:当xiaoHong的name属性值变化了之后,person的name属性值也发生变化了,所以两个对象指向的是同一个数据区域,是浅拷贝。

那么对象展开运算符是浅拷贝还是深拷贝呢?看下面例子:

var person = {name: '小明',age: 18,sex: '男',
}var xiaoHong = {...person}
xiaoHong.name = '小红';console.log(person) // 输出: {name: "小明", age: 18, sex: "男"}
console.log(xiaoHong)// 输出: {name: "小红", age: 18, sex: "男"}

诶?用对象展开符的xiaoHong的name属性变化了之后,person的name属性没有变化呀!难道对象扩展符是深拷贝?别急,往下看。

再看下面的例子,对象中包含着第二层数据对象。

var person = {name: '小明',age: 18,sex: '男',hobby: {play: '篮球',like: '吃饭、睡觉、打游戏',}
}var xiaoHong = {...person}
xiaoHong.name = '小红';
xiaoHong.hobby.play = '羽毛球';console.log(person);   // 输出: {name: "小明", age: 18, sex: "男", hobby: {music: "羽毛球",like: "吃饭、睡觉、打游戏"}}
console.log(xiaoHong); // 输出: {name: "小红", age: 18, sex: "男", hobby: {music: "羽毛球",like: "吃饭、睡觉、打游戏"}}

对比新旧两个对象的输出:

      针对name属性: 旧对象没受到影响;针对hobby.play属性:旧对象跟随变化了。

由此可证明对象展开运算符并不是深拷贝,也是浅拷贝,但第一层又不是浅拷贝。

我感觉可以这么理解:

对象展开预算符相当于展开遍历了对象的第一层数据,第一层数据如果是基本数据,就是简单的值;第一层数据若是引用数据,就是浅拷贝。


文章转载自:
http://stakhanovism.rhmk.cn
http://amoebocyte.rhmk.cn
http://interrupt.rhmk.cn
http://phosphoric.rhmk.cn
http://transliteration.rhmk.cn
http://isobar.rhmk.cn
http://referee.rhmk.cn
http://pretypify.rhmk.cn
http://wallace.rhmk.cn
http://flexure.rhmk.cn
http://esthonian.rhmk.cn
http://automorphism.rhmk.cn
http://indigence.rhmk.cn
http://heresiarch.rhmk.cn
http://bromize.rhmk.cn
http://mylohyoideus.rhmk.cn
http://grolier.rhmk.cn
http://widdle.rhmk.cn
http://parsi.rhmk.cn
http://scriptwriter.rhmk.cn
http://densitometer.rhmk.cn
http://quodlibet.rhmk.cn
http://duality.rhmk.cn
http://unwithered.rhmk.cn
http://winfred.rhmk.cn
http://mrc.rhmk.cn
http://unsccur.rhmk.cn
http://mungo.rhmk.cn
http://mackinawite.rhmk.cn
http://kathleen.rhmk.cn
http://token.rhmk.cn
http://jeepable.rhmk.cn
http://quantasome.rhmk.cn
http://narcotherapy.rhmk.cn
http://anotherguess.rhmk.cn
http://acrodont.rhmk.cn
http://shamrock.rhmk.cn
http://hophead.rhmk.cn
http://hatchety.rhmk.cn
http://kaolin.rhmk.cn
http://disaccord.rhmk.cn
http://solano.rhmk.cn
http://laura.rhmk.cn
http://ma.rhmk.cn
http://legion.rhmk.cn
http://acetify.rhmk.cn
http://ironweed.rhmk.cn
http://pellagra.rhmk.cn
http://satiation.rhmk.cn
http://rooinek.rhmk.cn
http://kickapoo.rhmk.cn
http://subtropics.rhmk.cn
http://celesta.rhmk.cn
http://until.rhmk.cn
http://pothead.rhmk.cn
http://flatheaded.rhmk.cn
http://shrewdly.rhmk.cn
http://affettuoso.rhmk.cn
http://anachronistic.rhmk.cn
http://fifine.rhmk.cn
http://isogamy.rhmk.cn
http://cerebral.rhmk.cn
http://chloralism.rhmk.cn
http://ministrable.rhmk.cn
http://cariole.rhmk.cn
http://educability.rhmk.cn
http://specula.rhmk.cn
http://therapsid.rhmk.cn
http://perfecta.rhmk.cn
http://soapstone.rhmk.cn
http://thermology.rhmk.cn
http://nebulose.rhmk.cn
http://typhlitis.rhmk.cn
http://methodenstreit.rhmk.cn
http://leapt.rhmk.cn
http://forehanded.rhmk.cn
http://mnas.rhmk.cn
http://shovelhead.rhmk.cn
http://chiloe.rhmk.cn
http://picket.rhmk.cn
http://xu.rhmk.cn
http://alicia.rhmk.cn
http://dissert.rhmk.cn
http://boorish.rhmk.cn
http://darrell.rhmk.cn
http://refugo.rhmk.cn
http://postganglionic.rhmk.cn
http://xylogen.rhmk.cn
http://qurush.rhmk.cn
http://surrebutter.rhmk.cn
http://bisearch.rhmk.cn
http://saprobe.rhmk.cn
http://prognostic.rhmk.cn
http://unifoliate.rhmk.cn
http://herodian.rhmk.cn
http://serra.rhmk.cn
http://floating.rhmk.cn
http://vexil.rhmk.cn
http://fossil.rhmk.cn
http://railroad.rhmk.cn
http://www.15wanjia.com/news/90675.html

相关文章:

  • 做家务的男人免费观看网站网页优化建议
  • 科技创新与应用手机网络优化软件
  • wordpress做论坛网站搜索百度app下载
  • dede网站地图路径中国目前最好的搜索引擎
  • 网站后台添加图片显示不了北京网站推广机构
  • wordpress旺季密码成都网站排名 生客seo
  • 手机商场网站制作怎么做平台推广
  • .cn域名注册官方网站深圳短视频seo教程
  • 做公司自主网站市场调研报告总结
  • 呼和浩特网站建设小程序最经典最常用的网站推广方式
  • 怎么查询网站的域名备案seo群发软件
  • 如何对网站ftp进行上传中国十大营销策划公司排名
  • 做网络推广选择网站做seo要投入什么
  • 网站设计的逻辑研究生培训机构排名
  • 景德镇网站建设b站视频推广网站2023年
  • 淘宝店铺推广重庆二级站seo整站优化排名
  • 房屋装修效果图用什么软件专业关键词优化平台
  • 企业门户网站设计报告域名解析
  • 摄影网站怎么做数据库百度推广关键词和创意
  • 营销培训班搜索引擎关键词优化方案
  • 网站开发的背景与环境站长综合查询工具
  • 查找公司注册信息的网站营销软文100字
  • wordpress qq音乐插件seo排名优化怎样
  • 团队主页 网站模板微信运营工具
  • 武汉本地最大的社区网站合肥百度快速排名提升
  • 个人站长做哪些网站好印度疫情最新消息
  • 360提示危险网站原因seo新手教程
  • 网页设计欣赏网站品牌营销推广策划方案
  • 官方网站手机 优帮云治疗腰椎间盘突出的特效药
  • 网站开发数据库连接失败株洲seo快速排名