Open In App

What is spread, default and rest parameters in JavaScript ?

Improve
Improve
Like Article
Like
Save
Share
Report

The default, spread, and rest parameters were added in ES6.

Default Parameter: It is used to give the default values to the arguments, if no parameter is provided in the function call.

Syntax:

function fnName(param1 = defaultValue1, ..., paramN = defaultValueN) { 
   ...
}

Example 1: In the below example, the first function gives result 7 whereas the second function call will be “undefined” as we did not pass any second argument. 

Javascript




<script>
    function add(a, b) {
        return a + b
    }
  
    console.log(add(5, 2)); // 7
    console.log(add(5)); // NaN
</script>


Output:

7
NaN

Example 2: In this example, we use default parameters in which we generally give a default value if no argument is provided. We take a default value of “b” so that in the second function call, we are not providing any argument, and its default value is taken.

Javascript




<script>
    function add(a, b = 3) {
        return a + b
    }
    console.log(add(5, 2))
    console.log(add(5))
</script>


Output:

7
8

Spread Operator:  It is another operator provided through ES6 it generally spreads data of array/list.

In the following example, we are calculating min of all the numbers

Example 1:

Javascript




<script>
    console.log(Math.min(1, 2, 3, -1)); 
</script>


Output:

-1

Example 2: Consider that we have an array instead of a list then the above min() function will not work and it will give “NaN”.

Javascript




<script>
    // Without spread operator
    let arr = [1, 2, 3, -1];
  
    console.log(Math.min(arr)); // NaN
</script>


Output:

NaN

Example 3:  When …arr is used, it generally spreads the arr values in the min() function.

Javascript




<script>
    // Spread operator
    let arr = [1, 2, 3, -1];
  
    console.log(Math.min(...arr)); // -1
</script>


Output:

-1

Rest Operator: It allows a function to accept an indefinite number of arguments if we are not sure how many arguments will receive.

Syntax:

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

Example: In the below example, we are using the rest parameter which allows taking indefinite parameters.

Javascript




<script>
    function myFun(a, b, ...manyMoreArgs) {
        console.log("a", a)
        console.log("b", b)
        console.log("manyMoreArgs", manyMoreArgs)
    }
  
    myFun("one", "two", "three", "four", "five", "six");
</script>


Output:

 



Last Updated : 13 Apr, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads