Web Development


The Complete JavaScript Course 2021: From Zero to Expert!

The modern JavaScript course for everyone! Master JavaScript with projects, challenges and theory. Many courses in one!

4.69 (95307 reviews)



67 horas en


Jan 2021

Last Update
Regular Price

What you will learn

Become an advanced, confident, and modern JavaScript developer from scratch

Build 6 beautiful real-world projects for your portfolio (not boring toy apps)

Become job-ready by understanding how JavaScript really works behind the scenes

How to think and work like a developer: problem-solving, researching, workflows

JavaScript fundamentals: variables, if/else, operators, boolean logic, functions, arrays, objects, loops, strings, etc.

Modern ES6+ from the beginning: arrow functions, destructuring, spread operator, optional chaining (ES2020), etc.

Modern OOP: Classes, constructors, prototypal inheritance, encapsulation, etc.

Complex concepts like the 'this' keyword, higher-order functions, closures, etc.

Asynchronous JavaScript: Event loop, promises, async/await, AJAX calls and APIs

How to architect your code using flowcharts and common patterns

Modern tools for 2020 and beyond: NPM, Parcel, Babel and ES6 modules

Practice your skills with 50+ challenges and assignments (solutions included)

Get downloadable lectures and friendly support in the Q&A area

Design your unique learning path according to your goals: course pathways


*** The #1 bestselling JavaScript course on Udemy! ***

*** Completely re-built from scratch in October 2020 (65 hours video) ***

"Really, really well made course. Super in-depth, with great challenges and projects that will solidify your Javascript understanding. I found the lectures were paced perfectly -- Jonas doesn't skip over anything that might be useful to a JS developer" — Carson Bartholomew

JavaScript is the most popular programming language in the world. It powers the entire modern web. It provides millions of high-paying jobs all over the world.

That's why you want to learn JavaScript too. And you came to the right place!

Why is this the right JavaScript course for you?

This is the most complete JavaScript course on Udemy. It's an all-in-one package that will take you from the very fundamentals of JavaScript, all the way to building modern and complex applications.

You will learn modern JavaScript from the very beginning, step-by-step. I will guide you through practical and fun code examples, important theory about how JavaScript works behind the scenes, and beautiful and complete projects.

You will also learn how to think like a developer, how to plan application features, how to architect your code, how to debug code, and a lot of other real-world skills that you will need on your developer job.

And unlike other courses, this one actually contains beginner, intermediate, advanced, and even expert topics, so you don't have to buy any other course in order to master JavaScript from the ground up!

But... You don't have to go into all these topics. This is a huge course, because, after all, it's "The Complete JavaScript Course". In fact, it's like many courses in one! But you can become an excellent developer by watching only parts of the course. That's why I built this course in a very modular way, and designed pathways that will take you through the course faster.

By the end of the course, you will have the knowledge and confidence that you need in order to ace your job interviews and become a professional developer.

Why am I the right JavaScript teacher for you?

My name is Jonas, I'm an experienced web developer and designer, and one of Udemy's top instructors. I have been teaching this bestselling course since 2016 to over 350,000 developers, always listening to feedback and understanding exactly how students actually learn.

Recently, I took all my teaching experience to build this new and greatly improved JavaScript course. It's now the best and most in-depth JavaScript course that you will find on Udemy (and maybe the entire internet).

I know how students learn JavaScript and what they need in order to master it. And with that knowledge, I designed the ideal course curriculum. It's a unique blend of real-world projects, deep explanations, theory lectures, and challenges, that will take you from zero to an expert and confident JavaScript developer in just a couple of weeks.

So what exactly is covered in the course?

  • Build 5 beautiful real-world projects for your portfolio! In these projects, you will learn how to plan and architect your applications using flowcharts and common JavaScript patterns

  • Master the JavaScript fundamentals: variables, if/else, operators, boolean logic, functions, arrays, objects, loops, strings, and more

  • Learn modern JavaScript (ES6+) from the beginning: arrow functions, destructuring, spread operator, default arguments, optional chaining (ES2020), and more

  • How JavaScript works behind the scenes: engines, the call stack, hoisting, scoping, the 'this' keyword, reference values, and more.

  • Deep dive into functions: arrow functions, first-class and higher-order functions, bind, and closures.

  • Deep dive into object-oriented programming: prototypal inheritance, constructor functions (ES5), classes (ES6), encapsulation, abstraction, inheritance, and polymorphism. [This is like a small standalone course]

  • Deep dive into asynchronous JavaScript: the event loop, promises, async/await, and error handling. You will use these to access data from third-party APIs with AJAX calls. [This is like a small standalone course]

  • Learn modern tools that are used by professional web developers: NPM, Parcel (module bundler), Babel, and ES6 modules

Check out the course curriculum for an even more detailed overview of the content :)

This is what's also included in the package:

  • Up-to-date HD-quality videos, that are easy to search and reference (great for Udemy for Business students)

  • Videos are also downloadable. Learn wherever you want, even without an internet connection!

  • Professional English captions (not the auto-generated ones)

  • Downloadable starter code and final code for each section

  • Downloadable slides for 40+ theory videos (not boring, I promise!)

  • Free support in the course Q&A

  • 25+ coding challenges and 25+ assignments to practice your new skills (solutions included)

This course is for you if...

  • ... you want to gain a true and deep understanding of JavaScript

  • ... you have been trying to learn JavaScript but: 1) still don't really understand JavaScript, or 2) still don't feel confident to code real apps

  • ... you are interested in using a library/framework like React, Angular, Vue, or Node.js in the future

  • ... you already know JavaScript and are looking for an advanced course. This course includes expert topics!

  • ... you want to get started with programming: JavaScript is a great first language!

Does any of these look like you? If so, then start this adventure today, and join me and 350,000+ other developers in the only JavaScript course that you will ever need!


The Complete JavaScript Course 2021: From Zero to Expert!
The Complete JavaScript Course 2021: From Zero to Expert!
The Complete JavaScript Course 2021: From Zero to Expert!
The Complete JavaScript Course 2021: From Zero to Expert!


Course Introduction

Welcome to the Course!


Setting up Our Tools

JavaScript Language Basics

Section Intro

Download the Code

Let's start coding!

A Brief Introduction to JavaScript

Variables and Data Types

Variable Mutation and Type Coercion

Basic Operators

Operator Precedence

Coding Challenge 1

Coding Challenge 1: Solution

If / else Statements

Boolean Logic

The Ternary Operator and Switch Statements

Truthy and Falsy Values and Equality Operators

Coding Challenge 2

Coding Challenge 2: Solution


Function Statements and Expressions


Coding Challenge 3

Coding Challenge 3: Solution

Objects and Properties

Objects and Methods

Coding Challenge 4

Coding Challenge 4: Solution

Loops and Iteration

Coding Challenge 5

Coding Challenge 5: Solution, Part 1

Coding Challenge 5: Solution, Part 2

JavaScript Versions: ES5, ES6 / ES2015 and ES6+

How JavaScript Works Behind the Scenes

Section Intro

Download the Code

How Our Code Is Executed: JavaScript Parsers and Engines

Execution Contexts and the Execution Stack

Execution Contexts in Detail: Creation and Execution Phases and Hoisting

Hoisting in Practice

Scoping and the Scope Chain

The 'this' Keyword

The 'this' Keyword in Practice

JavaScript in the Browser: DOM Manipulation and Events

Section Intro

Download the Code

The DOM and DOM Manipulation

5-Minute HTML and CSS Crash Course

Project Setup and Details

First DOM Access and Manipulation

Events and Event Handling: Rolling the Dice

Updating Scores and Changing the Active Player

Implementing Our 'Hold' Function and the DRY Principle

Creating a Game Initialization Function

Finishing Touches: State Variables

Coding Challenge 6

Coding Challenge 6: Solution, Part 1

Coding Challenge 6: Solution, Part 2

Coding Challenge 6: Solution, Part 3

Advanced JavaScript: Objects and Functions

Section Intro

Download the Code

Everything Is an Object: Inheritance and the Prototype Chain

Creating Objects: Function Constructors

The Prototype Chain in the Console

Creating Objects: Object.create

Primitives vs. Objects

First Class Functions: Passing Functions as Arguments

First Class Functions: Functions Returning Functions

Immediately Invoked Function Expressions (IIFE)


Bind, Call and Apply

Coding Challenge 7

Coding Challenge 7: Solution, Part 1

Coding Challenge 7: Solution, Part 2

Putting It All Together: The Budget App Project

Section Intro

Download the Code

Project Setup and Details

Project Planning and Architecture: Step 1

Implementing the Module Pattern

Setting up the First Event Listeners

Reading Input Data

Creating an Initialization Function

Creating Income and Expense Function Constructors

Adding a New Item to Our Budget Controller

Adding a New Item to the UI

Clearing Our Input Fields

Updating the Budget: Controller

Updating the Budget: Budget Controller

Updating the Budget: UI Controller

Project Planning and Architecture: Step 2

Event Delegation

Setting up the Delete Event Listener Using Event Delegation

Deleting an Item from Our Budget Controller

Deleting an Item from the UI

Project Planning and Architecture: Step 3

Updating the Percentages: Controller

Updating the Percentages: Budget Controller

Updating the Percentages: UI Controller

Formatting Our Budget Numbers: String Manipulation

Displaying the Current Month and Year

Finishing Touches: Improving the UX

We’ve Made It! Final Considerations

Next Generation JavaScript: Intro to ES6 / ES2015

Section Intro

Download the Code

What's new in ES6 / ES2015

Variable Declarations with let and const

Blocks and IIFEs

Strings in ES6 / ES2015

Arrow Functions: Basics

Arrow Functions: Lexical 'this' Keyword


Arrays in ES6 / ES2015

The Spread Operator

Rest Parameters

Default Parameters



Classes with Subclasses

Coding Challenge 8

Coding Challenge 8: Solution

Asynchronous JavaScript: Promises, Async/Await and AJAX

Section Intro

An Example of Asynchronous JavaScript

Understanding Asynchronous JavaScript: The Event Loop

The Old Way: Asynchronous JavaScript with Callbacks

From Callback Hell to Promises

From Promises to Async/Await


Making AJAX Calls with Fetch and Promises

Making AJAX Calls with Fetch and Async/Await

Modern JavaScript: Using ES6, NPM, Babel and Webpack

Section Intro

Project Overview

An Overview of Modern JavaScript

A Brief Introduction to the Command Line

A Modern Setup: Installing Node.js and NPM

Note: Tooling Changes

A Modern Setup: Configuring Webpack

A Modern Setup: The Webpack Dev Server

A Modern Setup: Babel

Planning our Project Architecture with MVC

How ES6 Modules Work

PLEASE READ: Changes to the Project API

Making our First API Calls

Building the Search Model

Building the Search Controller

Building the Search View - Part 1

Building the Search View - Part 2

Rendering an AJAX Loading Spinner

Implementing Search Results Pagination

Building the Recipe Model - Part 1

Building the Recipe Controller

Building the Recipe Model - Part 2

Building the Recipe View - Part 1

Building the Recipe View - Part 2

Updating Recipe Servings

Building the Shopping List Model

Building the Shopping List View

Building the Shopping List Controller

Building the Likes Model

Building the Likes Controller

Building the Likes View

Implementing Persistent Data with localStorage

Wrapping up: Final Considerations

Final Course Exam: 30 Questions to Test Your JavaScript Knowledge

Some Considerations Before You Start

30 Questions to Test Your JavaScript Knowledge


Where to Go from Here

Be the First to Know About New Course Launches!

BONUS: A Node.js Crash Course

A Quick Overview of Node.js

The Laptop Store Project, Part 1

The Laptop Store Project, Part 2


Fhatuwani9 October 2020

Yes, it was and i really understood most of the concepts that Jonas was explaining. This really is a fundamental course in JavaScript and i am motivated to learn more about other frameworks as well. Frameworks like Node.js

Elena9 October 2020

The course is nice (over 80% done with it), but there is a lack of communication between students and the teacher. There are many unanswered questions posted for months. And the Teacher Assistant simply copies and pastes his "answer", without even reading pretty reasonable questions from the students. Do not get me wrong - the content of this course is good. But in my opinion in order to make the most of the content, students need good answers, not robot answers. I will change my review if after I finish it I think it is worth more.

Melanie8 October 2020

Love the course where thurough. Resourses are awesome! Im very happy about it. /* Its cute as it feels like having class with the JavaSript version of Mr Garrison. M'kay? */

Paul7 October 2020

Jonas is a great teacher and works hard to make sure his students not only know how to do something but also why it works that way.

Hendra6 October 2020

The instructor is very knowledgeable and explain in detail. The way he presents the material is also smart and doesn't make us sleepy or bored. One of the best courses in Udemy so far.

Julia27 February 2020

Amazing course! I learned so much in 1 month! I can't believe I actually can code by myself now! Jonas is really great teacher. Looking forward to other couses of him.

Orlando26 February 2020

I would have liked a more "real world" application. One that contains several pages and user login for example. But it was ok for the price.

A26 February 2020

Great course. Jonas covers topics not found in many other courses or books about the inner workings of JavaScript which better help understand the language. The projects flow well with great explanations about concepts along the way. What made the course more engaging and valuable were the little coding errors along the way, which Jonas then walks through debugging - making for a much better learning experience.

Mario26 February 2020

The first part was extensive but boring for me as I already knew some javascript, the ES6 and nodejs intro are great. I recommend it to all who want to learn to code in JS

Toby25 February 2020

great teacher, explains everything very thoroughly. Other JS courses i've taken had many holes, this course covers everything. A lot of material to cover, but def one of my fav courses so far, and by far one of the best teachers.

Srinivasulu25 February 2020

Thanks a lot for taking your valuable time in preparing such a nice video course. Course content has not just explained theory, but also prepares every student, so that he occupies better slot in industry. I mean, course explains how a developer/beginner generally makes mistakes (..unknowingly though) and also also various ways to understand and debug the code. Thanks once again Sir.

Nathaniel24 February 2020

Would appreciate an updated version streamlined from the start for VS Studio but the course is still taught well.

Nickolai24 February 2020

great work with this course. it is easy to follow your routine and even the complicated stoff you make simple.

Siphelele24 February 2020

Honest speaking I don't have experience about the course but what I've learnt so long is what i was looking for

Jose24 February 2020

Curso muy completo para aprender java. Sólo un pero, en algunos vídeos, sobre todo al inicio, el enfoque es borroso y no se distingue que hay que hacer.


Expired10/21/202091% OFF
Expired10/27/202094% OFF


Udemy ID


Course created date


Course Indexed date
Course Submitted by

Android PlayStore
Apple Appstore