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

 數組中變量左右兩邊一對一對應:javascript

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

 變量左邊數量低於右邊java

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爲數組spa

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

 

 

同時解構賦值可使用默認值blog

注:只有當數組成員嚴格等於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]=[];//報錯
相關文章
相關標籤/搜索