函式的引數也可以使用解構賦值。
上面**中,函式function
add([x,
y])
add([1
,2]);// 3
add
的引數表面上是乙個陣列,但在傳入引數的那一刻,陣列引數就被解構成變數x
和y
。對於函式內部的**來說,它們能感受到的引數就是x
和y
。
下面是另乙個例子。
函式引數的解構也可以使用預設值。[[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
的引數是乙個物件,通過對這個物件進行解構,得到變數x
和y
的值。如果解構失敗,x
和y
等於預設值。
注意,下面的寫法會得到不一樣的結果。
上面**是為函式function
move(=
)
move
();// [3, 8]
move
();// [3, undefined]
move
({});
// [undefined, undefined]
move
();// [0, 0]
move
的引數指定預設值,而不是為變數x
和y
指定預設值,所以會得到與前一種寫法不同的結果。
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...