读书笔记-es6变量的解构赋值
2017.04.21
hzzly
变量的解构赋值
这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。
一、数组的解构赋值
数组的元素是按次序排列的,变量的取值由它的位置决定
1 2 3 4 5 6 7
| let [a, b, c] = [1, 2, 3] a b c let [head, ...tail] = [1, 2, 3, 4] head tail
|
1 2
| let [foo = true] = []; foo
|
栗子:
1 2 3 4 5
| function example() { return [1, 2, 3]; } let [a, b, c] = example();
|
二、对象的解构赋值
对象的属性没有次序,变量必须与属性同名,才能取到正确的值
1 2 3
| let { foo, bar } = { foo: "aaa", bar: "bbb" }; foo bar
|
1 2 3 4 5
| var {x = 3} = {}; x var {x, y = 5} = {x: 1}; x y
|
栗子:
1 2 3 4 5 6 7 8 9 10
| let { log, sin, cos } = Math
function example() { return { foo: 1, bar: 2 }; } let { foo, bar } = example();
|
1 2 3 4 5 6 7 8
| let jsonData = { id: 42, status: "OK", data: [867, 5309] }; let { id, status, data: number } = jsonData; console.log(id, status, number);
|
三、字符串的解构赋值
1 2 3 4 5 6
| const [a, b, c, d, e] = 'hzzly' a b c d e
|
1 2 3
| let {length : len} = 'hello'; len
|
四、函数参数的解构赋值
1 2 3 4
| function add([x, y]){ return x + y; } add([1, 2]);
|
Github地址: https://github.com/hzzly/learn-es6