解構賦值允許你使用類似陣列或物件字面量的語法將陣列和物件的屬性賦給各種變數。這種賦值語法極度簡潔,同時還比傳統的屬性訪問方法更為清晰。解構會僅提取出乙個大物件中的部分成員來單獨使用。
如下是傳統的:
var y=data[0]var m=data[1]
var d=data[2]
但在es6中可以簡寫為:
var [y,m,d]=date;
陣列解構賦值語法的一般形式為:
[ variable1, variable2, ..., variablen ] = array;
這將為variable1到variablen的變數賦予陣列中相應元素項的值。如果你想在賦值的同時宣告變數,可在賦值語句前加入var
、let
或const
關鍵字
物件的解構類似,如下所示:
var user=,signout:
function
(), signup:
function()}
//var =user;//簡寫如下
var =user;
console.log(uid);
signup();
物件解構的乙個特殊用法是引數結構,在向函式中傳參時,將乙個大的物件,打散後,傳遞給對應的形參變數,有效解決了傳參時有多個形參不確定但又要求按順序傳入的需求
//1. 定義形參列表時,就用物件結構定義
function
ajax()傳送$請求`);
if(data!=undefined&&type=="get")`)
}if(data!=undefined&&type=="post"))`);
}if(datatype=="json")}//
2. 呼叫函式傳參時,所有實參值,都要放在乙個物件結構中整體傳入。
ajax();
使用解構很方便,但它強調對應關係,陣列解構:下標對下標,物件解構:屬性對屬性,但允許元素或者引數為空,例如下面三種寫法:
var [y,,]=date;var [y,,d]=date;
var [,m,]=date;
雖然有不同位置的元素為空,但是依然可以正常執行賦值操作,不過和傳統方法一樣,為空的在用時會按undefined處理。
ES6 解構賦值
陣列的解構賦值 let a,b 12,13 let a,b,c d 13,15,16 let a,b c 78,12 23 let x,y 1,3,5 x 1,y 3 let x,y,z a x a,y undefined z let h,b 1,2,3,4 1,2,3,4 預設值 let x tr...
ES6解構賦值
一 基本用法 解構 destructuring 按照一定的模式,從陣列或者物件中提取值,對變數進行賦值。let par1,par2,par3 1,2 console.log par1,par2,par3 1 2 不完全解構時par3對值為undefined 解構賦值允許指定變數對預設值。let pa...
es6解構賦值
coding changes the world accumulating makes yourself 主要從三個方面講述 陣列式的解構賦值 物件式的解構賦值 函式中的解構賦值 preface 現今的變數宣告語法十分的直接 左邊是乙個變數名,右邊可以是乙個陣列 的表示式或乙個物件 的表示式,等等。...