我對ES2015中的rest parameter
中的spread operator
感到困惑。任何人都可以用適當的例子來解釋它們之間的區別嗎?傳播運算符vs ES2015中的Rest參數/ es6
回答
使用蔓延,你正在擴大單個變量到更多:
var abc = ['a', 'b', 'c'];
var def = ['d', 'e', 'f'];
var alpha = [ ...abc, ...def ];
console.log(alpha)// alpha == ['a', 'b', 'c', 'd', 'e', 'f'];
當使用其他參數,你崩潰一個函數的所有剩下的參數到一個數組:
function sum(first, ...others) {
for (var i = 0; i < others.length; i++)
first += others[i];
return first;
}
console.log(sum(1,2,3,4))// sum(1, 2, 3, 4) == 10;
'const [a,b,... c ] = [1,2,3,4,5,6,7,8,9]'? –
ES6具有新功能三個點...
這裏是我們如何使用這些點:
成REST /收集/集中
var [c, ...m] = [1,2,3,4,5]; // m -> [2,3,4,5]
這裏...m
是一個收藏家,它收集其餘的參數。在內部,當我們寫:
var [c, ...m] = [1,2,3,4,5];
JavaScript並以下
var c = 1,
m = [2, 3, 4, 5];
由於傳播
var params = [ "hello", true, 7 ];
var other = [ 1, 2, ...params ]; // other => [1,2,"hello", true, 7]
這裏,...params
利差以assing的所有元素來other
內部的JavaScript腳本如下
var other = [1, 2].concat(params);
希望這會有所幫助。
迄今爲止我所見過的最易於理解和最簡單的解釋。 – Robert
很好解釋... –
基本上像在Python:
>>> def func(first, *others):
... return [first, *others]
>>> func('a', 'b', 'c')
['a', 'b', 'c']
當我們在代碼中看到 「...」,則可能是其他參數或 蔓延運營商。
有一個簡單的方法來區分他們:
當......是的函數參數的結束,這是「休息參數」 並收集列表的其餘部分到數組。當...發生在函數調用等中時,它被稱爲「擴展運算符」,並將 數組擴展到列表中。使用模式:
其餘參數用於創建接受任意數量的 參數的函數。擴展運算符用於將數組傳遞給功能 ,通常需要許多參數列表。它們共同幫助 輕鬆地在列表和參數數組之間移動。 關於此的更多信息click here
- 1. ES6 Spread運算符(Rest參數) - 語法在Safari 9中失敗
- 2. 傳播運算符和EsLint
- 3. Java傳播運算符
- 4. FormGroup和傳播運算符
- 5. 不能使用傳播運算符
- 6. C++中的空傳播運算符
- 7. 傳播運算符未被WebPack根據Vue識別
- 8. =>運算符vs =運算符
- 9. 在htmlbars中使用es6 spread運算符
- 10. Python/vs //運算符
- 11. Ruby =〜vs ===運算符
- 12. 反應導航傳播運算符
- 13. 如果傳播運算符無法在REDX中運行
- 14. Python中的符號vs運算符
- 15. 數學運算符參數
- 16. 與Rest運算符的形式參數錯誤
- 17. 這個傳播運算符爲什麼會崩潰運行時?
- 18. 傳播運算符如何在數組與obj中工作?
- 19. ES6。如何正確比較===運算符?
- 20. 運算符和參數中的HQL
- 21. 布爾運算VS位運算符
- 22. 運算符在參數
- 23. C++運算符和參數
- 24. 運算符python參數
- 25. 參數化集合:IN運算符WHERE子句Cypher REST
- 26. Destructure傳播進口ES6
- 27. - vs - =運算符與numpy
- 28. 在傳遞給函數的參數上調用new運算符
- 29. 重傳REST參數?
- 30. java vs c中的三元運算符
一個在呼叫站點,另一個在參數列表中。或者對於數組,一個在字面上,另一個在解構表達式中。 – Bergi
任何人都可以解釋爲什麼它是downvoted? –
可能因爲沒有顯示研究工作。另外,你在哪裏找到這些術語,他們在哪裏/如何對他們進行了如此糟糕的解釋,以至於你無法區分這些差異? – Bergi