2021-05-25

ES6学习-5 解构赋值(2)对象的解构赋值

啥也不说,先举个栗子:

1 let { myname, myage } = { myage: 18, myname: "郭郭" };2 console.log(myname) //郭郭3 console.log(myage) //18

很简单的例子,主要是为了说明对象解构赋值与数组解构赋值的不同。数组解构赋值时,变量是按次序排列的,变量的取值由它的位置决定;而对象解构赋值时,变量没有次序,变量名只要与属性同名,就才能取到正确的值。

那如果变量与对象的属性不同名,可以应用解构赋值吗?答案是肯定的,就是麻烦一点点,举栗子:

1 let {myage:youage,myname:youname}={ myage: 18, myname: "郭郭" };2 console.log(youname) //郭郭3 console.log(youage) //18

我们用对象的 myage 属性给 youage变量赋了值,用 myname 属性给 youname 赋了值,变量名与对象的属性名不一致时,可以 在变量的前边加上 "属性名:",用指定属性名来给变量赋值

同数组解构赋值一样,对象的解构赋值也可以设置默认值,不再多说,举几个简单的栗子吧:

1 let { myname, myage=16 } = {myname: "郭郭" };2 console.log(myname) //郭郭3 console.log(myage) //16 没有对应的属性,所以使用了默认值4 5 let { myname, myage=16 } = {myname: "郭郭",myage:39 };6 console.log(myname) //郭郭7 console.log(myage) //39 有对应的属性,所以默认值不起作用

已经声名的变量,应用解构赋值:

1 let myname,myage;2 { myname, myage } = { myage: 18, myname: "郭郭" }; //报错啊,报错啊,why??3 ({ myname, myage } = { myage: 18, myname: "郭郭" }) //外面加对括号就好了。

因为 JavaScript 引擎会将{...}理解成一个代码块,从而发生语法错误。只要不将大括号写在行首,避免 JavaScript 将其解释为代码块,就能解决这个问题

奇怪而有意思的用法:

1 const { log } = console; //把console 对象的 log 方法解构给 log变量。2 log('hello') // 相当于调用了 console.log 控制台会输出hello

 









原文转载:http://www.shaoqun.com/a/760828.html

跨境电商:https://www.ikjzd.com/

modcloth:https://www.ikjzd.com/w/1271

浩方:https://www.ikjzd.com/w/1046


啥也不说,先举个栗子:1let{myname,myage}={myage:18,myname:"郭郭"};2console.log(myname)//郭郭3console.log(myage)//18很简单的例子,主要是为了说明对象解构赋值与数组解构赋值的不同。数组解构赋值时,变量是按次序排列的,变量的取值由它的位置决定;而对象解构赋值时,变量没有次序,变量名只要与属性同名,就
DMM:https://www.ikjzd.com/w/2026
retriever:https://www.ikjzd.com/w/773
吴佳:https://www.ikjzd.com/w/1770
盘点:跨境电商营销常用到的词语其含义与计算公式!:https://www.ikjzd.com/articles/106055
京东已成末位?拼多多超京东成中国第二大电商平台?:https://www.ikjzd.com/articles/19213
疫情之下,出海企业如何求生?:https://www.ikjzd.com/articles/115952

No comments:

Post a Comment