解构赋值
将数组的元素同时赋给多个变量;
1 | // 如果浏览器支持解构赋值就不会报错: |
解构赋值可以进行灵活的运用,比如对二维数组进行解构:
1 | let [x, [y, z]] = ['hello', ['JavaScript', 'ES6']]; |
忽略部分元素,只解构出一部分元素:
1 | let [, , z] = ['hello', 'JavaScript', 'ES6']; // 忽略前两个元素,只对z赋值第三个元素 |
解构对象
解构对象需要使用对应的属性名,并且用大括号括起来;
1 | 'use strict'; |
同样,对于嵌套的对象,也可以解构出其嵌套值;
1 | var person = { |
解构对象时,并不一定要于对象的的属性名一致,可以另外指定其他变量来接收解构的属性:
1 | var person = { |
可以给要获取解构的属性的变量设置默认值:1
2
3
4
5
6
7
8
9
10
11var person = {
name: '小明',
age: 20,
gender: 'male',
passport: 'G-12345678'
};
// 如果person对象没有single属性,默认赋值为true:
var {name, single=true} = person;
name; // '小明'
single; // true
- 解构对象时注意点
对于已经声明的变量,用它们来接收解构属性时,需要用括号括起,表示是一个运行语句,而不是代码块:
1 | // 声明变量: |
因为JavaScript引擎把{开头的语句当作了块处理,于是=不再合法。1
2正确写法:
({x, y} = { name: '小明', x: 100, y: 200});