Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

JavaScript Convert to Arrow Function Expressions

Srikanth Srinivasan
Srikanth Srinivasan
2,741 Points

Arrow Function semi-colon required?

I watched a video on Treehouse on introduction to arrow functions in which the instructor ended the arrow function creation with a semi-colon after the function body. I noticed in this video however that the instructor doesn't use a semi-colon at the end of the last function in the Convert.JS file. Can you confirm if the semi-colon is required or optional?

1 Answer

Steven Parker
Steven Parker
216,891 Points

Arrow functions are created by assigning a variable with a function expression. The entire statement is like any other JavaScript statement in that the semicolon at the end is optional.

It is, however, considered "best practice" to always use it. It was probably overlooked in this particular case because the functions are being converted from the conventional form, which does not have a semicolon after the body.

Srikanth Srinivasan
Srikanth Srinivasan
2,741 Points

Thanks for the clarification Steven. Can you just expand a bit on what you mean by "strict" mode please?

Steven Parker
Steven Parker
216,891 Points

Putting the line "use strict"; (including the quotes) at the beginning of the code places the system in strict mode, which makes some things that would normally be allowed become errors (such as implicit global declarations).

It does not, however, make the use of semicolons at the end of a statement line mandatory. I edited my answer to remove the potential for confusion. :see_no_evil: