Go Pro!Bootcamp


Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

Learn Modern JavaScript

Enroll for freeGet started!

Join 26504 other students

Log in to get

Access to all our free courses
Interactive hands-on content
100s of code challenges
Join a friendly community
Enroll for free
Subscribe to access!Subscribe to access!

Subscribe to access to this course and ALL other courses. You get a 30-day money-back guarantee, no questions asked.

Subscription includes

All courses and career paths
100s of coding challenges
Certificates of completion
Exclusive Pro members chat
The course creator freeCodeCamp

with freeCodeCamp

Course level: Intermediate

This tutorial features freeCodeCamp's ES6 curriculum recorded as interactive Scrimba screencasts. It gives you a methodical walk-through of the most important features of modern JavaScript.

What's inside

This course contains 30 interactive scrims

two girls
Learn Modern JavaScript

30 lessons 52 min

1. JavaScript ES6 Intro
2. Explore Differences Between the var and let Keywords
3. Frontend Career Path
4. Compare Scopes of the var and let Keywords
5. Declare a Read-Only Variable with the const Keyword
6. Mutate an Array Declared with const
7. Prevent Object Mutation
8. Use Arrow Functions to Write Concise Anonymous Functions
9. Write Arrow Functions with Parameters
10. Write Higher Order Arrow Functions
11. Set Default Parameters for Your Functions
12. Use the Rest Operator with Function Parameters
13. Use the Spread Operator to Evaluate Arrays In-Place
14. Use Destructuring Assignment to Assign Variables from Objects
15. Use Destructuring Assignment to Assign Variables from Nested Objects
16. Use Destructuring Assignment to Assign Variables from Arrays
17. Use Destructuring Assignment with the Rest Operator to Reassign Array Elements
18. Use Destructuring Assignment to Pass an Object as a Function's Parameters
19. Create Strings using Template Literals
20. Write Concise Object Literal Declarations Using Simple Fields
21. Write Concise Declarative Functions with ES6
22. Use class Syntax to Define a Constructor Function
23. Use getters and setters to Control Access to an Object
24. Understand the Differences Between import and require
25. Use export to Reuse a Code Block
26. Use * to Import Everything from a File
27. Create an Export Fallback with export default
28. Import a Default Export
29. JavaScript ES6 Outro
30. Congratulations on completing Learn Modern JavaScript! 🎉

You'll learn

ES6 from scratch

var & let


Javascript scope



Arrow functions

High order functions

Default parameters

Rest operator

Spread operator

Object destructuring

Array destructuring

Constructor functions

Declarative functions

ES6 classes

Getters and setters

ES6 modules

Import & Export



Before taking this course, you should have a basic understanding of JavaScript. Here’s our suggested resource to get you up to speed.

Meet your teacher

The course creator


freeCodeCamp is a community that helps you learn to code, then get experience by contributing to open source projects used by nonprofits. Their Scrimba sceencasts are recorded by their brilliant instructor Beau Carnes and are based on their core curriculum.

Follow me on twitter

Why this course rocks

This course features freeCodeCamp's ES6 curriculum recorded as Scrimba screencasts. It contains 26 lectures, each of which explains a concept of ES6. Throughout the lectures you'll build the skills you need in order to utilize JavaScript's modern features. And thanks to the interactivity of Scrimba, you'll be able to get your hands dirty with the code as well, as you can jump into the code and interact with it whenever you want.

About freeCodeCamp

The lectures are recorded by Beau Carnes. Beau is the man behind some of the most popular courses at freeCodeCamp's YouTube channel, so you'll be in good hands. He explains concepts clearly and thoroughly, but without wasting your time.

Join the Scrimba community chat

Learning alone can be lonely. Click here to join our Discord server and connect with other Scrimba learners!

Good luck, and happy coding!

F to the A oracle to the Q
How long it will take to learn JavaScript?

The answer to this question is highly individual. Depending on how much time you can dedicate to studying, the basic concepts in this course can be covered and practised in about 3 hours. To become reasonably proficient at Javascript might take another 6 months.

Is it hard to learn JavaScript?

In many ways, it's one of the easiest languages to learn. You can write some code in Developer Tools in your browser and see the results straight away. There are a lot of materials on Javascript and the barrier to entry is quite low. Some of the more advanced Javascript concepts might be tricky even for experienced professionals. But that shouldn't deter you in the slightest. In summary, we believe it's easy to learn, but can be hard at times, but that's ok.

Is it worth it to learn JavaScript?

Javascript is ubiquitous and it is hugely in demand. Javascript can be used on the customer-facing web apps, web servers on the backend, productivity-improving scripts. We even have a Neural Network course, here on Scrimba, that uses Javascript. Yes, it is definitely worth learning.