变量的结构赋值
1、数组的解构赋值
1.1 基本用法
es5:
var a = 1,
b = 2,
c = 3;
es6:
var [a, b, c] = [1, 2, 3];
1.2 默认值
var [a, b, c = 1] = [1, 2];
a = 1
b = 2
c = 1
注意: ES6内部使用严格相等运算符(===),判断一个位置是否有值。所以,如果一个数组成员不严格等于undefined,默认值是不会生效的。
2、对象的解构赋值
对象的解构赋值中, 变量必须与属性同名, 才能取到正确的值。
var { foo, bar } = { foo: "aaa", bar: "bbb" };
foo // "aaa"
bar // "bbb"
如果变量名称不一致, 则可以使用如下方式:
var { foo: xxx, bar: ooo } = { foo: "aaa", bar: "bbb" };
xxx: "aaa"
ooo: "bbb"
3、字符串的解构赋值
const [a, b, c, d, e] = 'hello';
a // "h"
b // "e"
c // "l"
d // "l"
e // "o"
4、数值和布尔值的解构赋值
let {toString: s} = 123;
s === Number.prototype.toString // true
let {toString: s} = true;
s === Boolean.prototype.toString // true
5、函数参数的解构赋值
function add([x, y]){
return x + y;
}
add([1, 2]); // 3
6、用途
交换变量的值
[x, y] = [y, x];
从函数返回多个值
// 返回一个数组 function example() { return [1, 2, 3]; } var [a, b, c] = example(); // 返回一个对象 function example() { return { foo: 1, bar: 2 }; } var { foo, bar } = example();
输入模块的指定方法
import { Actions } from 'react-native-router-flux';