ES6——数组的解构赋值

本文详细介绍了ES6中的解构赋值功能,包括基本用法、嵌套数组解构、不完全解构及默认值设定。通过具体示例,展示了如何从数组和对象中提取值,并对变量进行赋值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基本用法

解构:ES6允许按照一定模式从数组和对象中提取值,然后对变量进行赋值,称之为解构
以前,为变量赋值只能直接指定值

 let a = 1;
 let b = 2;
 let c = 3;

ES6允许写成下面这样

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

上面代码表示可以从数组中提取值,按照对应位置对变量进行赋值。
本质:这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。
以下是一些使用嵌套数组进行结构的例子:


    let [fir,[[sec],thi]] = [1,[[2],3]];
    fir//1
    bar//2
    thi//3
let [ , ,third] = ["foo","bar","baz"];
third//baz
let [x, ,y] = [1,2,3];
x//1
y//3

如果解构不成功,变量的值就等于undefined

let [foo] = [];
let [bar ,foo]  = [1];

以上两种请情况都属于解构不成功,foo的值都等于undefined

另一种情况是并不完全解构,即等号左边的模式只匹配等号右边数组的一部分。这种情况下解构依然可以成功。

let [x,y] = [1,2,3];
x//1
y//2
let [a,[b],d] = [1,[2,3],4];
a//1
b//2
d//4

上面两个例子都属于不完全解构,但是可以成功

二、默认值

解构赋值允许默认赋值

let [foo = true] = [];
foo//true
let[x,y = 'b'] = ['a'];
x//'a'
y//'b'
let [x,y = 'b'] = ['a',undefined];
x//'a'
y//'b'

注意:ES6内部使用严格相等运算符(===)判断一个位置是否有值。所以如果一个数组成员不严格等于undefined,默认值是不会生效的
例如:

let [x = 1] = [undefined];
x//1
let [x = 1] = [null];
x//null

上面代码中如果一个数组成员是null,默认值就不会生效因为null不严格等于undefined。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值