解构赋值

解构赋值

什么是解构赋值:
语法上就是赋值的作用。
解构:左边一种结构,右边一种结构,左右一一对应进行赋值。

解构赋值的分类:
数组解构赋值           --重点
对象解构赋值           --重点
字符串解构赋值
布尔值解构赋值
函数参数解构赋值
数值解构赋值


1.数组解构赋值 
{
    let a,b,rest;
    [a,b]=[1,2];
    console.log(a,b);
}



{
    let a,b,rest;
    [a,b,...rest]=[1,2,3,4,5,6]
}

解构赋值的特性:   ... 把其它的归为一个数组。

3.对象解构赋值
{
    let a,b;
    ({a,b}={a:1,b:2})
    console.log(a,b)
}

其它的类型都是从这2种上做的延伸.


{
    let a, b, c, crest;
    [a, b, c = 3] = [1, 2];
    console.log(a, b, c);
}
可以给c赋值默认值,防止没有成功配对赋值时候值为undefind情况

{
    let a=1;
    let b=2;
    [a,b]=[b,a];
    console.log(a,b)
}
实现了变量的交换,以前需要用一个值存储。


数组解构赋值使用场景:1
{
    function f() {
        return [1,2]
    }
    let a,b;
    [a,b]=f();
    console.log(a,b);
}

2:
{
    function f() {
        return [1, 2, 3, 4, 5]
    }

    let a, b, c;
    [a, , , b] = f();
    console.log(a, b)
}

第一个逗号之间对应的是2,第二个对应的是3,第三个对应的是4也就是b。这种情况就是忽略其它返回值,只关心自己想要的。

3:
{
    function f() {
        return [1, 2, 3, 4, 5]
    }

    let a, b, c;
    [a, ...b] = f();
    console.log(a, b)
}

取第一个元素,其它的为一个数组。可以和,混合使用

对象的解构赋值:
{
    let o={p:42,q:true};
    let {p,q}=o;
    console.log(p,q);
}

默认值:
{
    let {a = 10, b = 5} = {a: 3};
    console.log(a, b);
}


对象解构赋值场景:

{
    let metaData = {
        title: 'abc',
        test: [{
            title: 'test',
            desc: 'descrption'
        }]
    }
    let {title: esTitle, test: [{title: cnTitle}]} = metaData;
    console.log(esTitle, cnTitle);
}
模拟了一个json数据,然后把其中我们想要的值取出来赋值给 变量,是不是很简单,特别常用。














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值