Es6的变量解构赋值

从数组和对象中提取值,对变量进行赋值,这被称为解构。

对象的解构赋值

  • 变量名必须与属性同名,才能取到正确的值。
let { f, b } = { f: "aaa", b: {'name':'dsdsds'} };
f // "aaa"
b // {'name':'dsdsds'}
b.name//'dsdsds'
let { qqq} = { www: "aaa", fff: "bbb" };
www// undefined   变量名与属性名不一样
  • 如果变量名与属性名不一致,必须写成下面这样。
var { foo: baz } = { foo: 'aaa', bar: 'bbb' };
baz // "aaa"

let obj = { first: 'hello', last: 'world' };
let { first: f, last: l } = obj;
f // 'hello'
l // 'world'
//将现有对象的方法,赋值到某个变量。
let { log, sin, cos } = Math;

上面代码将Math对象的对数、正弦、余弦三个方法,赋值到对应的变量上,使用起来就会方便很多

数组的解构赋值

  • 可以从数组中提取值,按照对应位置,对变量赋值。
    let [a, b, c] = [1, 2, 3]; c//3
    let [a, ‘’, c,d] = [1, 2, 3];
    c//3
    d//undifind
    本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值,如果解构不成功,变量的值就等于undefined。

字符串的解构赋值

字符串解构赋值,字符串将被转换成了一个类似数组的对象。

const [a, b, c, d, e] = 'hello';
a // "h"
b // "e"
c // "l"
d // "l"
e // "o"

类似数组的对象都有一个length属性,因此还可以对这个属性解构赋值。

let {length : len} = ‘hello’;
len // 5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值