- 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.
1.Introduction2 lessons, 07:42
1.1Introduction02:12
1.2Setup05:30
2.Language Fundamentals8 lessons, 1:00:53
2.1Variables06:33
2.2Data Types11:28
2.3Arithmetic, Assignment, and Comparison Operators10:24
2.4Unary, Logical, Comma, and Spread Operators09:02
2.5Operator Precedence03:50
2.6Reserved Words04:17
2.7Strict Mode04:34
2.8Functions10:45
3.Data Structures5 lessons, 22:52
3.1Arrays04:29
3.2Objects04:30
3.3Sets04:57
3.4Maps04:21
3.5Weak Maps and Weak Sets04:35
4.Controlling Program Execution7 lessons, 37:06
4.1Conditionals07:49
4.2Switch Statements04:41
4.3The For Loop06:39
4.4The `for .. in` Loop05:17
4.5The `for .. of` Loop04:02
4.6Iterators05:03
4.7While Loops03:35
5.Using JavaScript13 lessons, 1:44:36
5.1Working With Strings09:32
5.2Template Literals05:46
5.3Working With Numbers06:57
5.4Working With Arrays12:53
5.5Iterating and Transforming Arrays07:33
5.6Working With the Object Type13:55
5.7Object Literal Extensions06:45
5.8Working With Object Instances06:45
5.9Getters and Setters05:00
5.10Custom Objects11:28
5.11The `Math` API04:54
5.12Working With Dates and Times08:10
5.13The `Array` Constructor04:58
6.Functions8 lessons, 56:07
6.1The `this` Object06:15
6.2Working With Functions10:11
6.3Scope07:37
6.4Arrow Functions06:59
6.5Generator Functions08:13
6.6Closures05:00
6.7Prototypes06:26
6.8Default and Rest Parameters05:26
7.Miscellaneous6 lessons, 52:39
7.1Destructuring Assignments08:09
7.2AJAX08:30
7.3Regular Expressions10:51
7.4More About Regular Expressions08:38
7.5Classes06:48
7.6ES Modules09:43
8.Working With the DOM6 lessons, 37:39
8.1Selecting HTML Elements05:02
8.2Manipulating HTML Elements07:40
8.3DOM Traversal05:25
8.4Adding and Removing Elements04:45
8.5Creating Elements and Other Nodes04:39
8.6DOM Events10:08
9.Web APIs4 lessons, 17:41
9.1The Selector API03:03
9.2Geolocation05:29
9.3Web Storage05:24
9.4Web Workers03:45
10.Asynchronous JavaScript5 lessons, 26:23
10.1Promises09:52
10.2Promise Chaining05:11
10.3The async Keyword03:21
10.4The await Keyword04:04
10.5More About async and await03:55
11.Conclusion1 lesson, 00:43
11.1Conclusion00: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.