Using Arrow Functions

Modern JavaScript Incorporating Functions
10 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
€92.30
List Price:  €129.22
You save:  €36.92
£79.14
List Price:  £110.81
You save:  £31.66
CA$135.92
List Price:  CA$190.30
You save:  CA$54.37
A$153.17
List Price:  A$214.44
You save:  A$61.27
S$134.71
List Price:  S$188.59
You save:  S$53.88
HK$782.26
List Price:  HK$1,095.19
You save:  HK$312.93
CHF 90.56
List Price:  CHF 126.79
You save:  CHF 36.22
NOK kr1,076.34
List Price:  NOK kr1,506.92
You save:  NOK kr430.58
DKK kr688.47
List Price:  DKK kr963.88
You save:  DKK kr275.41
NZ$166.49
List Price:  NZ$233.09
You save:  NZ$66.60
د.إ367.19
List Price:  د.إ514.08
You save:  د.إ146.89
৳11,000.23
List Price:  ৳15,400.77
You save:  ৳4,400.53
₹8,335.05
List Price:  ₹11,669.40
You save:  ₹3,334.35
RM473.25
List Price:  RM662.57
You save:  RM189.32
₦139,656.03
List Price:  ₦195,524.03
You save:  ₦55,868
₨27,872.43
List Price:  ₨39,022.53
You save:  ₨11,150.09
฿3,637.73
List Price:  ฿5,092.97
You save:  ฿1,455.24
₺3,222.80
List Price:  ₺4,512.05
You save:  ₺1,289.25
B$497.67
List Price:  B$696.75
You save:  B$199.08
R1,888.37
List Price:  R2,643.79
You save:  R755.42
Лв180.67
List Price:  Лв252.95
You save:  Лв72.27
₩134,942
List Price:  ₩188,924.20
You save:  ₩53,982.20
₪366.06
List Price:  ₪512.51
You save:  ₪146.44
₱5,625.18
List Price:  ₱7,875.48
You save:  ₱2,250.29
¥15,118.78
List Price:  ¥21,166.90
You save:  ¥6,048.12
MX$1,663.06
List Price:  MX$2,328.35
You save:  MX$665.29
QR365.44
List Price:  QR511.63
You save:  QR146.19
P1,373.02
List Price:  P1,922.28
You save:  P549.26
KSh13,148.68
List Price:  KSh18,408.68
You save:  KSh5,260
E£4,723.53
List Price:  E£6,613.14
You save:  E£1,889.60
ብር5,694.53
List Price:  ብር7,972.57
You save:  ብር2,278.04
Kz83,612.73
List Price:  Kz117,061.17
You save:  Kz33,448.44
CLP$98,024.19
List Price:  CLP$137,237.79
You save:  CLP$39,213.60
CN¥722.49
List Price:  CN¥1,011.52
You save:  CN¥289.02
RD$5,928.03
List Price:  RD$8,299.48
You save:  RD$2,371.45
DA13,469.95
List Price:  DA18,858.47
You save:  DA5,388.52
FJ$225.25
List Price:  FJ$315.36
You save:  FJ$90.11
Q781.84
List Price:  Q1,094.62
You save:  Q312.77
GY$20,987.69
List Price:  GY$29,383.60
You save:  GY$8,395.91
ISK kr13,817.61
List Price:  ISK kr19,345.21
You save:  ISK kr5,527.60
DH1,010.57
List Price:  DH1,414.84
You save:  DH404.26
L1,763.81
List Price:  L2,469.40
You save:  L705.59
ден5,677.01
List Price:  ден7,948.05
You save:  ден2,271.03
MOP$807.66
List Price:  MOP$1,130.76
You save:  MOP$323.09
N$1,895.98
List Price:  N$2,654.45
You save:  N$758.46
C$3,689.21
List Price:  C$5,165.04
You save:  C$1,475.83
रु13,357.88
List Price:  रु18,701.57
You save:  रु5,343.68
S/371.02
List Price:  S/519.45
You save:  S/148.42
K383.60
List Price:  K537.05
You save:  K153.45
SAR375.02
List Price:  SAR525.04
You save:  SAR150.02
ZK2,548.47
List Price:  ZK3,567.96
You save:  ZK1,019.49
L458.83
List Price:  L642.38
You save:  L183.55
Kč2,334.38
List Price:  Kč3,268.22
You save:  Kč933.84
Ft36,425.52
List Price:  Ft50,997.18
You save:  Ft14,571.66
SEK kr1,059.50
List Price:  SEK kr1,483.35
You save:  SEK kr423.84
ARS$85,666.43
List Price:  ARS$119,936.42
You save:  ARS$34,269.99
Bs695.09
List Price:  Bs973.16
You save:  Bs278.06
COP$389,673.99
List Price:  COP$545,559.18
You save:  COP$155,885.18
₡50,509.65
List Price:  ₡70,715.54
You save:  ₡20,205.88
L2,474.33
List Price:  L3,464.17
You save:  L989.83
₲736,638.54
List Price:  ₲1,031,323.43
You save:  ₲294,684.88
$U3,781
List Price:  $U5,293.55
You save:  $U1,512.55
zł398.17
List Price:  zł557.46
You save:  zł159.28
Already have an account? Log In

Transcript

ESX has established a new syntax for functions and is called arrow functions. It doesn't do away with the syntax, you've just learned that it's still very much viable. But the syntax used for arrow functions requires less typing. They're much more compact. And they also address another issue that was with functions that has to do with this keyword, something we haven't talked about yet. But those are the two reasons that arrow functions were developed in ESX.

Now, should you switch to arrow functions? Well, let me first introduce arrow functions to you. And then we'll have a discussion about when you might want to use them. So let's take a look at this new syntax. So here is a function This is a function expression is simply adds two numbers together and returns the results. This is our regular syntax for the function.

Now how would this exact same function be defined using arrow functions. Let's take a look at that. This one line is the same function using an arrow function. And you can see why they call it arrow functions. It uses equal sign and then a greater than operator to create an arrow. Now let's look at the parts of this arrow function.

So all arrow functions are function expressions. So in this case, it's part of an expression that is assigning the function to a variable sum just like we had up here. Notice we can skip the function key word That is gone. In fact, it's replaced with the arrow. We still have the parentheses if we want to pass in arguments, and so we have to designate the parameters inside of parentheses. Then we have the arrow.

And the arrow accomplishes a couple of things. It identifies it as a function. But it also, since there's only a single line here, it says to return the results of this statement number one plus number two. And so there's two things we've been able to eliminate with arrow functions, the function keyword, and the return keyword. And they're all replaced with the arrow. Now the curly braces don't exist as well, but we could have curly braces with the arrow function.

When there's only a single statement. The curly braces are not necessary and therefore I've eliminated them in this example. So both of these functions return the same thing. All right, let's look at a few additional examples of arrow functions. It's good to know these other examples as well, because you may encounter them in other people's code, or you may choose to use them in your own. So this next function, this next arrow function, it takes a number as an argument, and it just multiplies the number by itself and returns the results.

So we've set the function to the variable func one. And notice since we only have one parameter in the function, we can eliminate the parentheses as well. So even more simplified approach. However, sometimes I think the more simplified we get the more difficult it can be to read it. If you were looking through a bunch of code, you'd have to stop and examine this to realize, Oh, this is a function. And so I don't think that's always the best is to simplify it so much.

But that's just my opinion. But anyway, we have one parameter, one argument being passed in, so we can eliminate the parentheses. Then we have the arrow and that says to return the results of num multiplied by num. All right, let's look at another example. This example has nothing being passed in so there's no parameters necessary for the function. However, when there's nothing being passed in the parentheses are required.

And so this function simply returns the number 100. That's all it does. All right, let's look at one more example that uses curly braces with the arrow function. And then we'll talk about when you may want to use these. Because there is more than one line in the code block, curly braces are required. So this function is simply allows you to pass in a number and pass in a percent, and then it returns the percent of the number you passed in.

That's all it does. So we're passing in a number of percent, and then the arrow defines the function inside the braces is the code block. We set percent equal to percent divided by 100. And then we return num times percent. Now notice that when you have the braces and you have multiple lines, you do have to use the return keyword To return the value when you have a single statement, then the arrow function will automatically return the results. Otherwise you do need to read, you do need to include the return keyword.

So there are some example of arrow functions. Now, when would you use them? Well, I think in really large functions, I think they're a little more complex, a little harder to read, and so forth. In large functions, I would use the traditional method of defining that function where arrow functions and their simplified syntax may be very helpful as with anonymous functions, we just talked about high order functions and how we can pass functions into other functions. Well, that's a great candidate for arrow functions because it simplifies the syntax and therefore is easier to Read a simplified syntax being passed into another function. So that might be a situation where where arrow functions are helpful arrow functions I mentioned also addressed another problem which has been found with traditional function def definitions.

That problem is a bit more complex. It has to do with this binding complications that can occur with traditional functions. We have not discussed that in this Getting Started course. So I don't want to confuse the issue by addressing it here with arrow functions. So the main purpose of introducing arrow functions to you is so that when you see it in code, you will recognize it. And you can use this alternative syntax and in places where it makes sense.

Now we've looked at several examples. Let's see those examples executed within JavaScript page. Now, let me jump out to sublime. I've already entered all this information, so you don't have to watch me type it in. So we have our sum function, our traditional function that we started with. We then converted that to an arrow function where it's adding two numbers, I gave it a different variable name, so that we could address both of them separately.

And then we have the next two examples, where we're passing in a number and multiplying it by itself. And then the one that simply returns 100. And then we have the percent example that uses the curly braces. Alright, I have a console dot log. And inside that console dot log statement, I call each of those functions so that I can simply log out the value that those functions return. So let me go ahead and run that.

And then we'll compare it with those examples. Open up the console, I'm going to jump back to sublime. And I'm going to reduce the size of sublime a bit so we can see what's happening. So, in the first console dot log statement, I call this um function passed and a five and a six that returned 11 with the arrow function, returning the exact same thing. Then I called function one with a 10. And that simply multiplies the number by itself that came back with 100.

And then func two simply returns 100. That's all it does. So nothing crazy with that particular function, and then finally called the percent function I passed in the number 100. And the percentage I wanted to take was 10. And it returns a 10 10% of 100 is 10. So there we can see the arrow functions working.

In one of the exercises, I'll have you do an arrow function as a part of a higher order function that will give you a chance to use that syntax and get used to it. It's important to be aware of the syntax so that you can identify it and also because you may want to use it in certain places. Remember arrow functions are ESX ACMA script six standard. They are supported by latest versions of all modern browsers, and by node. So if your requirements for the project you're working on will match that you could use these function definitions. All right, let's move on to the exercises for functions.

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.