1. 程式人生 > >ES6系列_3之變數的解構賦值

ES6系列_3之變數的解構賦值

ES6允許按照一定模式,從陣列和物件中提取值,對變數進行賦值,這被稱為解構。

解構有三種類型:

1.陣列的解構賦值

(1)簡單的陣列解構

以前,我們給變數賦值是直接單個指定值,比如:

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

陣列解構的方式來進行賦值,如下:

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

總結:從陣列中提取值,按照位置的物件關係(次序)對變數賦值。

(2)陣列模式和賦值模式統一

可以簡單的理解為等號左邊和等號右邊的形式要統一,如果不統一解構將失敗。相關程式碼如下:

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

如果等號兩邊形式不一樣,很可能獲得undefined或者直接報錯。

(3)解構的預設值

解構賦值是允許你使用預設值的,相關程式碼如下:

let [foo = true] =[];
console.log(foo); //控制檯打印出true

undefined和null的區別:

*undefined相當於什麼都沒有。

*null相當於有值,但值為null。

2.物件的解構賦值

物件的屬性沒有次序,變數必須與屬性同名,才能取到正確的值。

(1)圓括號的使用

如果在解構之前就定義了變數,這時候再解構會出現問題,而且編譯就會報錯。

let foo;
{foo} 
={foo:'i love you'}; console.log(foo);

要解決報錯,使程式正常,我們這時候只要在解構的語句外邊加一個圓括號就可以了。

let foo;
({foo} ={foo:'i love you'});
console.log(foo); //控制檯輸出i love you

3.字串解構

字串解構,此時字串被轉換成了一個類似陣列的物件。

const [a,b,c,d,]="love";
console.log(a);//l
console.log(b);//o
console.log(c);//v
console.log(d);//e

學習參考連結為:

http://jspang.com/post/es6.html#toc-696 。