ES6系列_3之變數的解構賦值
阿新 • • 發佈:2018-12-01
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 。