解构赋值 讲解之3 数组
2020-08-17 本文已影响0人
zhang463291046
以下内容是引用或者借鉴别人的,自己只是做个笔记,方便学习。理解错误的地方,欢迎评论。如有侵权,私聊我删除,未经允许,不准作为商业用途
从数组中提取值,按照对应顺序位置,对变量赋值,这种写法属于“模式匹配”
let [a, b, c] = [1, 2, 3];
a //1
b //2
c //3
let [a, ...c] = [1, 2, 3];
a// 1
c// [2, 3]
let [a, b, ...c] = [1];
a //1
b //undefined
c //[]
let [a, [b], c] = [1, [2, 3]];
a //1
b //2
c //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
默认值:当一个数组成员严格等于undefined,默认值才会执行代码生效
let [x, y = 'b'] = ['a'];
x // 'a',
y //'b'
let [x, y = 'b'] = ['a', undefined];
x // 'a',
y //'b'
let [x, y = 'b'] = ['a', null];
x // 'a',
y //'null'
let [x, y = f()] = ['a', 1];
function f() { //此方法不会被执行
console.log('aaa');
}
x // 'a'
y // '1'