Understanding Arguments and Parameters

Modern JavaScript Incorporating Functions
8 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$99.99
List Price:  $139.99
You save:  $40
€96.21
List Price:  €134.70
You save:  €38.49
£79.93
List Price:  £111.90
You save:  £31.97
CA$143.79
List Price:  CA$201.32
You save:  CA$57.52
A$160.48
List Price:  A$224.69
You save:  A$64.20
S$135.83
List Price:  S$190.17
You save:  S$54.33
HK$777.07
List Price:  HK$1,087.93
You save:  HK$310.86
CHF 89.45
List Price:  CHF 125.24
You save:  CHF 35.78
NOK kr1,141.95
List Price:  NOK kr1,598.78
You save:  NOK kr456.82
DKK kr717.64
List Price:  DKK kr1,004.72
You save:  DKK kr287.08
NZ$177.52
List Price:  NZ$248.53
You save:  NZ$71.01
د.إ367.25
List Price:  د.إ514.17
You save:  د.إ146.91
৳11,994.74
List Price:  ৳16,793.12
You save:  ৳4,798.37
₹8,496.63
List Price:  ₹11,895.62
You save:  ₹3,398.99
RM450.75
List Price:  RM631.07
You save:  RM180.32
₦155,628.43
List Price:  ₦217,886.03
You save:  ₦62,257.60
₨27,934.96
List Price:  ₨39,110.06
You save:  ₨11,175.10
฿3,444.45
List Price:  ฿4,822.37
You save:  ฿1,377.92
₺3,518.54
List Price:  ₺4,926.10
You save:  ₺1,407.55
B$617.53
List Price:  B$864.57
You save:  B$247.04
R1,837.80
List Price:  R2,572.99
You save:  R735.19
Лв188.31
List Price:  Лв263.64
You save:  Лв75.33
₩144,872.25
List Price:  ₩202,826.95
You save:  ₩57,954.69
₪364.89
List Price:  ₪510.86
You save:  ₪145.97
₱5,883.01
List Price:  ₱8,236.45
You save:  ₱2,353.44
¥15,672.80
List Price:  ¥21,942.55
You save:  ¥6,269.75
MX$2,028.91
List Price:  MX$2,840.56
You save:  MX$811.64
QR366.34
List Price:  QR512.89
You save:  QR146.55
P1,382.59
List Price:  P1,935.69
You save:  P553.09
KSh12,923.70
List Price:  KSh18,093.70
You save:  KSh5,170
E£5,091.27
List Price:  E£7,127.98
You save:  E£2,036.71
ብር12,764.56
List Price:  ብር17,870.89
You save:  ብር5,106.33
Kz91,790.82
List Price:  Kz128,510.82
You save:  Kz36,720
CLP$99,155.08
List Price:  CLP$138,821.08
You save:  CLP$39,666
CN¥729.81
List Price:  CN¥1,021.77
You save:  CN¥291.95
RD$6,104.52
List Price:  RD$8,546.58
You save:  RD$2,442.05
DA13,454.60
List Price:  DA18,836.98
You save:  DA5,382.37
FJ$232.11
List Price:  FJ$324.96
You save:  FJ$92.85
Q773.21
List Price:  Q1,082.52
You save:  Q309.31
GY$21,000.46
List Price:  GY$29,401.48
You save:  GY$8,401.02
ISK kr13,903.60
List Price:  ISK kr19,465.60
You save:  ISK kr5,562
DH1,007.40
List Price:  DH1,410.40
You save:  DH403
L1,841.78
List Price:  L2,578.57
You save:  L736.78
ден5,922.50
List Price:  ден8,291.74
You save:  ден2,369.23
MOP$803.42
List Price:  MOP$1,124.82
You save:  MOP$321.40
N$1,834.70
List Price:  N$2,568.66
You save:  N$733.95
C$3,694.32
List Price:  C$5,172.20
You save:  C$1,477.87
रु13,665.58
List Price:  रु19,132.35
You save:  रु5,466.77
S/374.71
List Price:  S/524.60
You save:  S/149.89
K406.86
List Price:  K569.63
You save:  K162.76
SAR375.72
List Price:  SAR526.02
You save:  SAR150.30
ZK2,777.96
List Price:  ZK3,889.25
You save:  ZK1,111.29
L478.81
List Price:  L670.35
You save:  L191.54
Kč2,418.25
List Price:  Kč3,385.65
You save:  Kč967.40
Ft39,800.47
List Price:  Ft55,722.25
You save:  Ft15,921.78
SEK kr1,103.66
List Price:  SEK kr1,545.17
You save:  SEK kr441.50
ARS$102,190.76
List Price:  ARS$143,071.15
You save:  ARS$40,880.39
Bs693.61
List Price:  Bs971.08
You save:  Bs277.47
COP$437,799.12
List Price:  COP$612,936.28
You save:  COP$175,137.16
₡50,480.33
List Price:  ₡70,674.48
You save:  ₡20,194.15
L2,548.03
List Price:  L3,567.35
You save:  L1,019.31
₲784,126.06
List Price:  ₲1,097,807.85
You save:  ₲313,681.79
$U4,460.41
List Price:  $U6,244.75
You save:  $U1,784.34
zł409.96
List Price:  zł573.96
You save:  zł164
Already have an account? Log In

Transcript

Another feature of functions which make them extremely useful is that you can pass arguments into that function. those arguments are collected by the parameters which you define in the function. And then you can use those parameters as the variables which they are as part of the code, which makes up the function. Let's take a look at some examples of how that would be done. So first with an example using a function declaration. We set up the parameters this way, we have the function keyword, then the function name then inside of parentheses we enter the number number of parameters which we want to accept.

Then we have curly braces, and then the code block to execute using pram, one pram two which merely act as variables. And then the end of the curly brace Let's look how a functional function expression would handle the same thing. So as you probably guessed, it's exactly the same except we're assigning the whole thing to a variable, in this case, variable x. Now when we call both of these, this is what it would look like. For the function declaration, we would use the function name and inside of parentheses, we would pass in the two arguments for the function expression, the variable with parentheses and inside of the parentheses, the two arguments. Alright, let's jump to sublime and do a concrete example of this.

So what we want to do is create a function that will sum to numbers, so really not too difficult. Let's go ahead and define our function, I'm going to use a function expression. The variable name will be some set that equal to function. And then inside of parentheses, I want to set up my parameters num one, and m two, we're going to pass in two numbers, and then we will sum those numbers and print the results to the console. Now curly braces, and since this is a, an expression, I should put a semicolon at the end. All right, I'm going to declare a variable.

Set it equal to zero. This part's not necessary. I could just console dot log, those two numbers added together, but I'm going to assign the sum to a variable first. Equals number one plus number two. And then we console dot log, the total. All right, that's our function.

Now let's call our function. Let's do, let's call it twice. The arguments that we're passing in on the first example is five are five and six. The arguments for the second example are 100 and negative four. All right, let's see what the results are. Open the console.

And we have an 11 and a 96. printed out so that worked great. Now what happens if we only pass in one argument? Now in some languages, this would cause an error in JavaScript it does not. And because it doesn't throw an error because only one argument is passed in, it could cause bugs that might be hard to figure out. Let's first see what the results are when we just pass in one argument, jump back refresh, open the console. And it tells us any n it displays any n meaning something that was not a number was a you was used as a part of that operation.

And obviously, one of the parameters was undefined, num two was undefined. And so num two, when it was added to num one caused the Nn. So how can we deal with this? Well, first I'm going to show you how we have dealt with it This type of thing in the past, then I'll show you a solution that comes from es six. And the solution from ESX is supported by the latest version of all modern browsers and also node. So prior to ESX, this is what we would need to do.

I'm going to set num one equal to and then in parentheses, we're going to use a conditional num one not equal to undefined. So if num one is not equal to undefined, then we're going to use a shortened version of the if conditional may remember this from a previous movie. So if num one is not equal to undefined, then we will put num one into num one else. We will put zero into number one. Okay. So let me just walk through this really quick.

So the conditionals simply checks to see if num one is not equal to undefined. If only one argument is passed in is possible one of these could be undefined. If they're undefined, it will do the outs portion and set num one equal to zero. If it's not undefined, it will set num one equal to the number one. So it ends up with what was passed in. All right, let's do the same thing for num to our conditional.

Not equal to undefined. Question mark. If this evaluates to true, num to his return, else if it evaluates to false, zero, his return. All right, let's see what that does for the problem we were experiencing. Save that jump out and refresh, open the console. And it worked this time.

So One number was passed in and assumed the other number would be zero. Now that's a decision we make as a programmer what this other number will be. In this case, I'm assuming it will be zero if they do not pass something else in. All right, now let's look at the ESX solution. Now, as mentioned, this is supported by the latest versions of all modern browsers, and node. I'm going to remove these lines here.

And this is what is possible. With es six, you can enter a default value for the parameter. So the way this works is, if num one has a value, it will use it if it does not, it will use zero. That's what this is telling it. Let's go ahead and save that. Refresh.

Open the console. And sure enough, that still works. Alright, so we looked at two solutions to the problem if we define a parameter and only and not all of the arguments are passed in. The second solution is only available with s six. The first solution is what's been done prior to ESX or something similar to that. Alright, let's move on to the next topic.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.