URL: https://www.progressiverobot.com/js-rest-parameters-es6/

Rest parameters are a new way in ES6 / ES2015 to work with functions that have an arbitrary amount of arguments passed in:

				
					
function myFunc(...someArgs) {

  for (let i = 0; i < rest.length; i++) {

    console.log(`Argument ${ i + 1 }: ${ rest[i] }`);

  }

}

				
			

Now let's call the function:

				
					
myFunc('Paul', 'John', 'Ringo');

				
			

And this is what we'll get at the console:

				
					
Argument 1: Paul

Argument 2: John

Argument 3: Ringo

				
			

Prior to ES6, the <^>arguments<^> array-like object could be used, but more boilerplate code was needed to be able to treat <^>arguments<^> like a real array.

Destructuring

rest illustration for: Destructuring

You can define an array as the rest parameter, and the passed-in arguments will be broken down into the array:

				
					
function myFunc(...[name1, name2, name3]) {

  console.log(name1, name2, name3);

}



let names = ['Paul', 'John', 'Ringo'];

myFunc(names);