陣列 物件 函式引數解構

2021-10-25 09:15:26 字數 3174 閱讀 5071

乙個正在努力愛好運動的程式猿-

座右銘:越努力越幸運,越運動越健康,熱愛程式設計,熱愛運動。

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

解構是es6的新特性, 比es5**簡潔,清晰,減少**量

//陣列解構(按順序匹配)

//匹配模式 左邊是變數 =(匹配) 右邊對應的值

let[a,b,c]=[

1,2,

3];var a =1;

var b =2;

var c =3;

var a =[1

,2,3

];var b =

;var c =

null

;let

[a,b,c]=[

[1,2

,3],

,null];

//匹配不成功 變數的值就等於undefined

let[a,b]=[

1]//a=1 b = undefined

let[a,b]=[

1,2,

3]//不完全解構 a=1 b=2 按順序匹配

//擴充套件

let[a]=[

];//a =undefined

let[a,b]=[

[,],

null];

//a = [,] b=null

let[a,

[b],c]=[

1,[2

],3]

;//預設值 (成員等於undefined 預設值會生效)

var arr =[10

,20];

let[a=

1,b=1]

= arr;

a = arr[0]

||1; b = arr[1]

||1;let

[a=1

,b=2]=

[10];

//a=10,b = 2;

let[a=

1,b=2]

=[10,

null];

//a = 10;b = null

let[a,b=2]

=[10]

;//a=10,b = 2;

//例外 成員等於undefined 預設值會生效

let[a,b=2]

=[10,undefined]

;//a=10,b=2

//物件解構(按匹配模式來匹配)

var=

;var obj =

;var a = obj.a;

var b = obj.b;

var c = obj.c;

// var = obj;

//作用 例如後端傳過來的資料...

var res =

, arr:

};var code = res.code;

var result = res.result;

var obj = res.obj;

let= obj;

result[2]

; obj.id;

//擴充套件題

function

fun(str,res)

= res;

console.

log(code)};

fun(

1,res)

//res為上面的整個物件

function

fun(str,);

fun(

1,res)

//全域性引入的變數與元件中的變數重名

//別名 a:q a是匹配模式 q才是變數

var=

;var=;

console.

log(a2)

console.

log(b2)

;let=;

//變數是誰 a y

//匹配結果 a = 1 , y = undefined

//預設值 預設值生效的條件是,物件的屬性值嚴格等於`undefined`

let=

;//x =10;

let=

;//x = 10,y=10

let=

;//x=1,y = 10

let=

;//變數 n a

//匹配結果 n = 10,a = 20;

let=

;//n=10,a=2;

//陣列解構

function

add(

[x, y]

)add([

1,2]

);//匹配方式 [x,y] = [1,2];

//物件解構

function

move()

move()

;//匹配方式 = ;

//當實參為空時,寫入預設值

function

fun(

[x=0

,y=0])

;fun([

2,4]

);//匹配方式 [x=0,y=0] = [2,4];

function

move()

move()

;//匹配方式 = ;

//擴充套件題 函式引數的解構也可以使用預設值

function

move(=

)move()

;// [3,8]

//匹配方式 =

move()

;//[3,0]

//匹配方式 =

move()

;//[0,0]

//匹配方式 = {}

move()

;//[0,0]

//匹配方式 = {}

function

move(=

)move()

;// [3,8]

//匹配方式 =

move()

;//[3,undefined]

//匹配方式 =

move()

;//[undefined,undefined]

//匹配方式 = {}

move()

;//[0,0]

//匹配方式 =

越努力越幸運,越運動越健康!!!加油

es6 物件解構 陣列解構 引數解構

使用es6的一種語法規則,將乙個物件或陣列的某個屬性提取到某個變數中。解構不會對解構的目標造成任何影響 對於物件,在我們要使用它的屬性時,通常把屬性儲存在變數裡 const user const age user.age const name user.name const user.或者如下分開宣...

函式引數解構

函式引數解構 給函式提供實參的時候,可以在集合型別前使用 把集合型別的解構解開,提取所有元素作為函式的實參 非字典型別使用 解構成位置引數 字典型別使用 解構成關鍵字引數 提取出來的元素數目要和引數的要求匹配,也要和引數的型別匹配 def add x,y return x y add 4,5 9 a...

箭頭函式引數解構

var elements hydrogen helium lithium beryllium elements.map function element 返回陣列 8,6,7,9 上面的普通函式可以改寫成如下的箭頭函式 elements.map element 8,6,7,9 當箭頭函式只有乙個引數...