0% acharam este documento útil (0 voto)
25 visualizações3 páginas

02 Parâmetros Rest - JavaScript - MDN

Enviado por

Josué Rodrigues
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
25 visualizações3 páginas

02 Parâmetros Rest - JavaScript - MDN

Enviado por

Josué Rodrigues
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 3

18/03/2024, 21:51 Parâmetros Rest - JavaScript | MDN

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

Parâmetros Rest
A sintaxe de rest parameter (parâmetros rest) nos permite representar um número indefinido de argumentos como um array.

Sintaxe
JS

function(a, b, ...theArgs) {
// ...
}

Descrição
Se o último argumento nomeado de uma função tiver prefixo com ... , ele irá se tornar um array em que os elemento de 0 (inclusive) até
theArgs.length (exclusivo) são disponibilizados pelos argumentos atuais passados à função.
No exemplo acima, theArgs irá coletar o terceiro argumento da função (porquê o primeiro é mapeado para a , e o segundo para b ) e
assim por diante em todos os argumentos consecutivos.
Diferença entre rest parameters e arguments object
Há três diferenças principais entre rest parameters e os arguments objects:
rest parameters são os únicos que não foram atribuidos a um nome separado, enquanto os arguments object contêm todos os
argumentos passados para a função;
o objeto arguments não é um array, enquanto rest parameters são instâncias Array , isso significa que métodos como sort , map ,
forEach ou pop podem ser aplicados diretamente;

o objeto arguments possui a funcionalidade adicional de especificar ele mesmo (como a propriedade callee ).
De arguments para array
Rest parameters foram criados para reduzir o código padrão que foi induzida pelos argumentos
JS

// Antes rest parameters, o seguinte codigo pode ser encontrado


function f(a, b){
var args = Array.prototype.slice.call(arguments, f.length);

// ...
}

// esse é o equivalente

function(a, b, ...args) {

Exemplos
https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Functions/rest_parameters 1/3
18/03/2024, 21:51 Parâmetros Rest - JavaScript | MDN

Como theArgs é um array, você pode pegar número de elementos usando a propriedade length :
JS

function fun1(...theArgs) {
console.log(theArgs.length);
}

fun1(); // 0
fun1(5); // 1
fun1(5, 6, 7); // 3

No próximo exemplo, nós usamos o rest parâmetro para buscar argumentos do segundo parâmetro para o fim. Nós multiplicamos eles
pelo primeiro parâmetro:
JS

function multiply(multiplier, ...theArgs) {


return theArgs.map(function (element) {
return multiplier * element;
});
}

var arr = multiply(2, 1, 2, 3);


console.log(arr); // [2, 4, 6]

O próximo exemplo mostra como você pode usar metodos do Array em rest params, mas não no objeto arguments :
JS

function sortRestArgs(...theArgs) {
var sortedArgs = theArgs.sort();
return sortedArgs;
}

console.log(sortRestArgs(5, 3, 7, 1)); // Exibe 1,3,5,7

function sortArguments() {
var sortedArgs = arguments.sort();
return sortedArgs; // isso nunca irá ocorrer
}

// throws a TypeError: arguments.sort is not a function


console.log(sortArguments(5, 3, 7, 1));

a fim de usar o objeto arguments , você precisará converte-lo para um array antes.

Especificações
Specification
ECMAScript Language Specification
# sec-function-definitions

Compatibilidade
Report problems with this compatibility data on GitHub

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Functions/rest_parameters 2/3
18/03/2024, 21:51 Parâmetros Rest - JavaScript | MDN

diordnA rof xoferiF


diordnA emorhC

diordnA arepO
emorhC

xoferiF

arepO

irafaS
egdE
Rest Chrome 47 Edge 12 Firefox 15 Opera 34 Safari 10 Chrome 47 Firefox 15 Opera 34
parameters Android for Android
Android
Destructuring Chrome 49 Edge 79 Firefox 52 Opera 36 Safari 10 Chrome 49 Firefox 52 Opera 36
rest Android for Android
parameters Android
Tip: you can click/tap on a cell for more information.
Full support

Veja também
Arguments object
Array
Functions
Spread Operator (en-US)
Original proposal at ecmascript.org
JavaScript arguments object and beyond

Help improve MDN


Was this page helpful to you?
Yes No
Learn how to contribute.
This page was last modified on 8 de nov. de 2023 by MDN contributors.

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Functions/rest_parameters 3/3

Você também pode gostar