Es6變量的基本語法
ES6 允許按照一定模式次哈,從數(shù)組和對象中提取值莹规,對變量進行賦值请梢,這被稱為解構(Destructuring)正歼。
上面代碼表示辐马,可以從數(shù)組中提取值,按照對應位置局义,對變量賦值喜爷。本質上,這種寫法屬于“模式匹配”萄唇,只要等號兩邊的模式相同檩帐,左邊的變量就會被賦予對應的值。下面是一些使用嵌套數(shù)組進行解構的例子
使用嵌套數(shù)組進行解構的例子另萤。
如果解析不成功湃密,變得的值就等于undefined
另一種情況是不完全解構,即等號左邊的模式,只匹配一部分的等號右邊的數(shù)組泛源。這種情況下揍障,解構依然可以成功。
/*上面兩個例子俩由,都屬于不完全解構毒嫡,但是可以成功。*/
如果等號右邊不是數(shù)組幻梯,嚴格的說是不可遍歷的結構兜畸,那么將會報錯
對于Set結構,也可以使用數(shù)組解構賦值
? ??
事實上碘梢,只要某種數(shù)據(jù)結構具有 Iterator 接口咬摇,都可以采用數(shù)組形式的解構賦值。
對象的解構賦值
????????????????? ? 對象的解構賦值跟數(shù)組的解構賦值有所不同煞躬,數(shù)組的元素是按次列排列的肛鹏,變量的取值也是由他的位置決定的;而對象則不同 對象的屬性沒有次序恩沛,但是變量必須與屬性同名才可以賦值在扰;
上面代碼的第一個例子,等號左邊的兩個變量的次序雷客,與等號右邊兩個同名屬性的次序不一致芒珠,但是對取值完全沒有影響。第二個例子的變量沒有對應的同名屬性搅裙,導致取不到值皱卓,最后等于undefined。