ES6变量的解构赋值数组的解构赋值

Posted kongbaifeiye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6变量的解构赋值数组的解构赋值相关的知识,希望对你有一定的参考价值。

let[a,...arr]=[1,2,3,4];//a==>1   arr==>[2,3,4]

let [x, y, ...z] = [‘a‘];//a==>‘a‘  y==>undefined  z==> []

let [a, [b], d] = [1, [2, 3], 4];//a==>1  b==>2  c==>4
let[a,b]=[1,2,3];//a==>1  b==>2

 数组中变量左右两边一对一对应:

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

 变量左边数量低于右边

let[a,b,]=[1,2,3];//a==>1  b==>2
let[a,,c]=[1,2,3];//a==>1 c==>3
let [a, [b], d] = [1, [2, 3], 4];//a==>1 b==>2 c==>4

 左边数量多于右边数量,匹配不到数值变量均为undefined

let[a,b,c]=[1,,3];//a==>1  b==>undefined   c==>3

特殊:arr为数组

let[a,...arr]=[1,2,3,4];//a==>1   arr==>[2,3,4]
let[a,...arr]=[1,];//a=>1 arr=>[]

 

 

同时解构赋值可以使用默认值

注:只有当数组成员严格等于undefined时,默认值才有效
let[a,b=‘b‘]=[‘a‘];//a==>‘a‘  b==>‘b‘
let[a,b=‘b‘]=[‘a‘,undefined];//a==>‘a‘  b==>‘b‘

let[a=1]=[null];//a==>null let[a=1]=[];//a==>1; let[a=1]=[undefined];//a==>1

 

如果默认值是一个表达式,那么这个表达式是惰性求值的,即只有在用到的时候,才会求值
 
function f() {
  console.log(‘aaa‘);
}

let [x = f()] = [1];//x==>1;

let[y=f()]=[];
y;//此时就y就相当于f();即结果为aaa

 

默认值可以引用解构赋值的其他变量,但该变量必须已经声明。
let[a=1,b=a]=[];//a==>1  b==>2
let[a=b,b=1]=[];//报错

 

以上是关于ES6变量的解构赋值数组的解构赋值的主要内容,如果未能解决你的问题,请参考以下文章

ES6学习 第二章 变量的解构赋值

ES6 解构赋值

ES6中变量的解构赋值

ES6解构

ES6 之 数组的解构赋值

学习es6之(变量的解构赋值)