DEV Community

Cover image for Function Rest Parameters in JavaScript
Moazam Ali
Moazam Ali

Posted on

Function Rest Parameters in JavaScript

Function rest parameters are a feature in JavaScript introduced in the ES6 version of JavaScript that allows a function to accept an indefinite number of arguments as an array. These arguments are stored in an array that can be accessed within the function.

Syntax

To create a function with a rest parameter, the parameter is declared with three dots (...) followed by the name of the parameter. For example:

function example(...args) {
  // Code goes here
}
Enter fullscreen mode Exit fullscreen mode

When the function is called, any number of arguments can be passed to it. These arguments are stored in the args array, which can be accessed within the function like any other array.

Here's an example of a function that uses a rest parameter to find the sum of all the arguments passed to it:

function sum(...numbers) {
  let total = 0;
  for (let i = 0; i < numbers.length; i++) {
    total += numbers[i];
  }
  return total;
}

console.log(sum(1, 2, 3, 4)); // Output: 10
console.log(sum(5, 10, 15, 20)); // Output: 50
Enter fullscreen mode Exit fullscreen mode

In this example, the sum() function accepts a rest parameter called numbers, which is used to store the arguments passed to the function. The numbers array is then looped through using a for loop, and the sum of all the elements is calculated and returned.

Rest parameters are useful when you want to write a function that can accept any number of arguments, but you don't know in advance how many arguments will be passed to the function. This allows you to write flexible and reusable code.

Note:
However, it's important to note that the rest parameter must be the last parameter in the function declaration. This is because the rest parameter collects all the remaining arguments into an array, and if there are any other parameters after the rest parameter, they will not be included in the array.

We can also use the rest parameters with the regular parameters. Here's an example of a function that uses a rest parameter and a regular parameter:

function example(first, ...args) {
  // Code goes here
}
Enter fullscreen mode Exit fullscreen mode

In this example, the example() function accepts two arguments: a regular parameter called first and a rest parameter called args. The first parameter will contain the first argument passed to the function, and the args array will contain all the remaining arguments.

Rest Parameters vs Arguments

One key difference between rest parameters and the arguments object is that rest parameters are actually arrays, whereas the arguments object is not. This means that you can use array methods, such as map and forEach, on rest parameters, but not on the arguments object.

For example, you could write the sum function like this using the forEach method:

function sum(...numbers) {
  let total = 0;

  numbers.forEach(number => {
    total += number;
  });

  return total;
}

console.log(sum(1, 2, 3, 4, 5)); // 15
Enter fullscreen mode Exit fullscreen mode

Wrapping up!

Rest parameters are a useful feature in JavaScript that can help you write more concise and elegant code when working with an unknown number of arguments in a function. They are a great alternative to the arguments object and can make your code more readable and maintainable.

That's all for this article, hope you learned something. Thanks for reading, catch you later.

You can also buy me a coffee that would help me grow as a frontend developer :)

Buy Me A Coffee


Top comments (0)