Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From \$16.50/m
FREELessons:65Length:7.1 hours

• Overview
• Transcript

# 6.8 Default and Rest Parameters

In this lesson, we can take a look at two additional function features, both to do with parameters: default parameters and rest parameters.

## 11.Conclusion1 lesson, 00:43

### 6.8 Default and Rest Parameters

Hi folks, in this session, we're going to learn about a couple of features that we have with regards to function parameters. These features are called Default Parameters and Rest Parameters. Let's start out by looking at default parameters. Default parameters are a way to specify a value for a parameter when that parameter doesn't get past as an argument to the function when the function gets invoked. So we specify the default value for a parameter when defining the function. We use assignments within the function's parameter list to specify the default value for the parameter. When we invoke the function, if we don't pass a value or if we pass undefined, the default value will be used. If we do supply a value for the parameter, as an argument, it will overwrite the default. So we can see the first time the function gets invoked and we don’t pass an argument, it uses the default value of the parameter. But when we invoke it a second time and we do pass a value in, that value then overrides the default. We can use default parameters with function expressions as well as regular functions like this, and we can specify multiple default parameters. We can even use the default value of one parameter as part of an expression for another default parameter. Let's change the example code to add a second default parameter that makes use of the first one. And let's update the log message inside the function. So we've added a new invocation of our function as well, just with some different parameters there so we can see the different behavior. So you can see the different variations and the different arguments that we were passing when we invoke the function and how that interacts with the default parameters. So let's move on to look at rest parameters now. We looked at the spread operator right back near the start of the course. We can also use the spread operator in a functions parameter list. And when we do this, the arguments are received as an array rather than an array like object, like the arguments object. So let's create a new function now. So we can now invoke this function with any number of string arguments and the function will join them all together, And actually there's a syntax error, I've missed a parentheses. Let's just add that inside the function. And instead of just joining all of the strings together, let's add a space in between them. Okay, so let's just take a look at the output and that's probably what we were expecting. So the reason why rest parameters are awesome is because for many years we've had to endure the fact that while the argument subject looks like an array, it isn't an array and so we can't actually use array methods like join with it. So let's just illustrate this point by changing the console log. So remember the arguments objects is available within all functions, and it is an array like collection, but it's not a true array. And we see that it's not a true array because we see an error in the console if we try to use array methods, such as join on an array like object. So that's really why rest params are so awesome, just because we've had to do without them for so long and now they're finally here. Previously we might have had to convert arguments into an array somehow. And although that wasn't particularly difficult it was an extra thing that we would have to do inside functions if we wanted to treat the arguments object as if it were a true array. So now we don't have to do any of that messing about stuff. We can just use a rest param. So in this lesson, we learned about default parameters and rest parameters. We saw the default parameters are simply a way to specify a default value for a function parameter, which we do in the parameter list when we declare the function. When the function is invoked, if an argument isn't passed, the default parameter value will be used instead. We also saw that rest parameters are a way to use an arbitrary number of arguments passed to a function as a true array, rather than as an array like objects, like the argument's objects. So this now brings us to the end of the section on functions. In the next section, we'll move on to look at some miscellaneous JavaScript features, starting with the structuring assignment. Thanks for watching.

Back to the top