es6-变量的解构赋值

2020-01-19  本文已影响0人  ysdyyy

1:数组的解构赋值

基本用法

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

let [a,b,c] = [1,2,3];// 1 2 3
let [a,[[b],c]] = [1,[[2],3]];// 1 2 3
let [,,a] = [1,2,3];// 3

本质上,这种写法属于模式匹配。

let [x,y] = [1,2,3];// 1 2

上述例子为不完全解构。
事实上,只要某种数据结构有Iterator接口,都可以采用数组形式的结构赋值。

2:对象的解构赋值

let {a,b} = {b:1,a:2};
a // 1
b // 2
let { first: f, last: l } = {first: 'hello', last: 'last' };
f// hello
l// last

3:字符串的解构赋值

const [a, b, c, d, e] = 'hello';

4:数值和布尔值的解构赋值

let {toString: s} = 123;
s === Number.prototype.toString // true

let {toString: s} = true;
s === Boolean.prototype.toString // true

解构赋值的规则是:只要等到右边的值不是对象或数组,就将其先转为对象。由于undefined和null不能转为对象,所以对他们进行解构赋值,就会报错

5:函数对象的解构赋值

function add([x,y]){
    return x + y;
}
add([1,2]); //3

6:圆括号问题

7:用途

参考:http://es6.ruanyifeng.com/#docs/destructuring

上一篇下一篇

猜你喜欢

热点阅读