ES6中的数组解构赋值

解构赋值:

解构赋值语法是一个Javascript表达式,这使得可以将数据从数组或对象提取到不同的变量中(这段话是mdn中关于解构赋值的定义,注意这里的定义,可以看出解构主要用在数组和对象上)。

说白了就是解析等号两边的结构,然后把右边的对应赋值给左边。如果解构不成功,变量的值就等于undefined

一、基本的语法使用

例子1:普通数组解构赋值

let a,b;
[a,b] = [1,2];
console.log(a,b); // 1  2

例子2:带扩展运算符的数组解构赋值

let a,b,rest;
[a,b,...rest] = [1,2,3,4,5,6];
console.log(a,b); // 1  2
console.log(rest); // [3,4,5,6]

例子3:变量有默认值的数组解构赋值

let a,b,c;
[a,b,c=33] = [1,2];
console.log(a,b,c); // 1  2  33

例子4:变量无默认值且解构不成功

let a,b,c;
[a,b,c] = [1,2];
console.log(a,b,c); // 1  2  undefined
二、数组解构赋值的使用场景

1、变量交换

let a = 1,
    b = 2;
[a,b] = [b,a];
console.log(a,b); // 2  1

2、对函数返回的数组值,进行对应赋值

//一个计算数据的函数,返回一个已知长度的数组,数组中的数据对应不同的含义
function cal(){
       //略过函数计算代码
       return [11,22]; //假设返回11代表人数,22代表总额
}
let man , price;
[man,price] = cal();
console.log(man,price); // 11  22

3、对函数返回数组,只选择性的取自己想要的数据
(逗号中无变量,那么解构的右边对应的会被忽略掉)

function cal(){
	return [1,2,3,4,5];
}
let a,b;
[a,,,b] = cal(); //5没有对应的解构,所以不会赋值
console.log(a,b); // 1  4

4、对于函数返回的未知长度的数组,只关心取第一项数据

function cal(){
	return [1,2,3,4,5];
}
let a,b;
[a,...b] = cal(); 
console.log(a); // 1 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值