函式引數的解構賦值

2021-08-14 16:14:42 字數 1493 閱讀 9835

函式的引數也可以使用解構賦值。

function

add([x,

y])

add([1

,2]);// 3

上面**中,函式add的引數表面上是乙個陣列,但在傳入引數的那一刻,陣列引數就被解構成變數xy。對於函式內部的**來說,它們能感受到的引數就是xy

下面是另乙個例子。

[[1,

2],[3

,4]].map

(([a,b

])=>a +

b);

// [ 3, 7 ]

函式引數的解構也可以使用預設值。

function

move(=

{})

move

();// [3, 8]

move

();// [3, 0]

move

({});

// [0, 0]

move

();// [0, 0]

上面**中,函式move的引數是乙個物件,通過對這個物件進行解構,得到變數xy的值。如果解構失敗,xy等於預設值。

注意,下面的寫法會得到不一樣的結果。

function

move(=

)

move

();// [3, 8]

move

();// [3, undefined]

move

({});

// [undefined, undefined]

move

();// [0, 0]

上面**是為函式move的引數指定預設值,而不是為變數xy指定預設值,所以會得到與前一種寫法不同的結果。

undefined就會觸發函式引數的預設值。

[1,

undefined,3

].map

((x

='yes'

)=>

x);

// [ 1, 'yes', 3 ]

解構賦值 陣列的解構賦值

什麼是解構賦值?es6 允許按照一定模式,從陣列和物件中提取值,對變數進行賦值,這被稱為解構 destructuring 我的理解是 允許宣告一種模式 陣列 物件等 裡面包含乙個或多個變數,再分別對這些變數遍歷 按照對應位置 賦值。以前,為變數賦值,只能直接指定值。let a 1 let b 2 通...

函式引數解構

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

箭頭函式與解構賦值

const firts 這就等同於 function first all 為認為最為典型的列子是dva中connect的寫法 connect 如果你將變為乙個引數 比如a,再在箭頭函式中列印出a,就可以看到其實a是所有的model如果返回的是乙個物件的話,我們需要用圓括號將其包起來 const se...