ES6(第二部分)

74 阅读1分钟

本人已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

大家好,我是掘金新用户小钻风头领,今天是我正式更文的第四天;

四、解构表达式

4.1、说明

​ ES6中允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,这被称为解构。

4.2、数组解构

​ 数组解构允许我们按照一一对应的关系从数组中提取值,并且将值一一赋值给对应的变量。

4.2.1、之前写法

<script type="text/javascript">

    let arrs = [1,2,3];

	let x = arrs[0];
	let y = arrs[1];
	let z = arrs[2];

    console.info(x);
	console.info(y);
	console.info(z);

</script>
/*
	之前写法中,如果要获取数组中每个元素的值分别赋值给变量,只能通过下标的方式.
*/

4.2.2、案例1

<script type="text/javascript">

    let arrs = [1,2,3];

    let [x,y,z] = arrs;	// x,y,z将与arrs中的每个位置对应来取值。

    console.info(x,y,z);

</script>
// let [x,y,z] = arrs 注意:等号左边的[]不是数组,表示的解构,表示的从等号右边的数组中提取值。

4.2.3、案例2

<script type="text/javascript">

   let [ [num1,num2,num3] , num , value ] = [ [1,2,3] , 34 , 'HelloWorld' ];

   console.info(num1,num2,num3,num,value);
</script>

4.3、对象解构

​ 对象解构允许我们使用变量的名字匹配对象的属性,匹配成功,则会将对象属性的值赋值给变量。

4.3.1、之前写法

<script type="text/javascript">

   let person = {
       name: "Hello",
       age: 12,
       address: ["河南","山东"]
   };

   console.info(person.name);
   console.info(person.age);
   console.info(person.address);

</script>
/*
	之前写法中,如果要获取对象中的属性,需要通过【对象名.属性】的方式实现	
*/

4.3.2、案例1

<script type="text/javascript">

   let person = {
       name: "Hello",
       age: 12,
       address: ["河南","山东"]
   };

   let {name,age,address} = person;	// {}中的name、age和address需要和person中的属性一致

   console.info(name);
   console.info(age);
   console.info(address);

</script>

4.3.3、案例2

<script type="text/javascript">

   let person = {
       name: "Hello",
       age: 12,
       address: ["河南","山东"]
   };

   // 当然也可以不一致,如果想要用其它变量接收,需要额外指定别名,需要用【:】指定
   // name是person中的属性名,冒号后面的myName是解构后要赋值给的变量。
   let {name:myName,age:myAge,address} = person;	

   console.info(myName);
   console.info(myAge);
   console.info(address);

</script>