freeCodeCamp/guide/portuguese/javascript/rest-parameters/index.md

37 lines
1.4 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

---
title: Rest Parameters
localeTitle: Parâmetros de descanso
---
## Parâmetros de descanso
No ES6, a sintaxe do resto do parâmetro `...` permite reunir um número indefinido de argumentos em uma matriz.
Mesmo que pareçam iguais, ele faz o oposto do operador de propagação, que pega cada item de um iterável e os espalha em seus valores individuais.
### Sintaxe
```js
function myFunc(...args) {
console.log(args);
}
myFunc( 1, 2, 3, 4, 5); // [1,2,3,4,5]
```
Você pode prefixar o último parâmetro de uma função com `...` quando quiser fazer algo com os parâmetros iniciais e depois tratar todos os demais parâmetros de maneira diferente.
```js
function convertCurrency(rate, fee, ...amounts) {
return amounts.map(amount => (amount * rate) + fee);
}
convertCurrency(0.89, 2.5, 100, 250, 75, 150, 300); // [ 91.5, 225, 69.25, 136, 269.5 ]
```
O `...` permite reunir o restante dos argumentos, se houver algum, em uma matriz.
### A diferença entre os parâmetros de descanso e o objeto de argumentos
`arguments` é um objeto do tipo array, disponível dentro de funções, que contém os argumentos passados para essas funções. É chamado de "array-like" porque não possui todos os métodos `.forEach()` de um array, como `.forEach()` e `.map()` .
Os parâmetros restantes são uma matriz, com todos os métodos da matriz incluídos.