Back to courses

JavaScript: The Advanced Concepts

Learn modern, advanced JavaScript concepts and practices to be in the top 10% JavaScript Developers this year. This Advanced JavaScript course is even used as reference material to study for some FAANG company interview processes.

35 Days

Average time students take to complete this course.

instructor
Taught by: Andrei Neagoie
Last updated: March 2024

Course overview

Updated for 2024! This course is unlike any JavaScript course you will find online. After many years of working with JavaScript on a daily basis, Andrei has now combined best practices from his own experience and decades of experience from some of the top developers in the world, to create a course that turns you into a top performing JavaScript Developer.

What you'll learn

  • Advanced JavaScript Practices
  • Object Oriented Programming & Functional Programming
  • Scope and Execution Context
  • Inheritance + Prototype Chain
  • Latest features: ES6, ES7, ES8, ES9, ES10, ES2020~ES2023
  • Closures
  • Asynchronous JavaScript + Event Loop
  • JavaScript Modules
  • JavaScript Engine and Runtime
  • `this` keyword
  • Stack Overflow
  • Error Handling
  • Composition vs Inheritance
  • Memory Leaks
  • Pass By Reference vs Pass by Value
  • Type Coersion
  • IIFE, Higher Order Functions
  • Interpreter/ Compiler/ JIT Compiler
  • .call(), .apply(), .bind()
  • Hoisting
  • Garbage Collection
  • JavaScript best practices

This Advanced JavaScript course by Andrei Neagoie will take you from understanding the basics of JavaScript, to learning it to the point that you can teach it to others, impress coworkers, and wow future employers.

Which must be the reason that it's even being used as reference material by some FAANG companies as recommended content to use to study for their interview processes.

And the results speak for themselves.

Graduates of Zero To Mastery are now working at Google, Tesla, Amazon, Apple, IBM, Uber, Facebook, Shopify + other top tech companies.

They are also working as top freelancers getting paid while working remotely around the world.

This can be you.

By enrolling today, you’ll also get to join our exclusive live online community classroom to learn alongside thousands of students, alumni, mentors, TAs and Instructors.

Active. Thriving. Supportive. Helpful. Friendly. Motivating. Essential.

These are just a few of the words students use to describe the ZTM Discord which is also one of the biggest and most active developer communities on Discord.

Most importantly, you will advanced JavaScript concepts and best practices from an industry expert that has actual real-world experience working for top companies in both Silicon Valley and Toronto.

This course is the accumulation of years in the field and combining the best resources, tools, and tutorials out there to create the ultimate JavaScript course that teaches you everything you need to know to be considered a Senior Javascript Developer.

Instead of spending years learning these advanced JavaScript topics, you can fast track and get the knowledge that Senior Javascript Developers have in just 30 days.

Unlike most other online courses, you are going to learn beyond the basics. You won't just learn patterns, techniques and best practices.

You are going to understand the "why" of the toughest part of the language, to the point that when you get asked any question about JavaScript in an interview or in a meeting, you will be able to explain concepts that would make people see that you are a Senior Javascript Programmer.

You are going to dive deep into JavaScript and I'm going to make sure you come out the other side as a confident, advanced JavaScript Developer. I guarantee it.

Whether you are a Web Developer, Frontend Developer (using something like React, Angular, Vue.js), or a Backend Developer using Node.js, you will benefit from this course because JavaScript is at the core of all of these professions.

The topics you'll learn in this Advanced JavaScript course:

  • Javascript Engine
  • Javascript Runtime
  • Interpreter, Compiler, JIT Compiler
  • Writing Optimized Code
  • Call Stack + Memory Heap
  • Stack Overflow + Memory Leaks
  • Garbage Collection
  • Node.js
  • ES6, ES7, ES8, ES9, ES10, ES2020, ES2021, ES2022 features
  • Single Threaded Model
  • Execution Context
  • Lexical Environment
  • Scope Chain
  • Hoisting
  • Function Invocation
  • Function Scope vs Block Scope
  • Dynamic vs Lexical Scope
  • this: call(), apply(), bind()
  • IIFEs
  • Context vs Scope
  • Static vs Dynamically Typed
  • Primitive Types
  • Pass by Reference vs Pass by Value
  • Type Coercion
  • Arrays, Functions, Objects
  • Closures
  • Prototypal Inheritance
  • Class Inheritance
  • Memoization
  • Functions vs Objects
  • Scheme + Java in JavaScript
  • OOP (Object Oriented Programming)
  • Private vs Public Properties
  • Functional Programming
  • Immutability
  • Imperative vs Declarative code
  • Composition vs Inheritance
  • Currying
  • Partial Application
  • Pure Functions
  • Referential Transparency
  • Compose
  • Pipe
  • Error Handling
  • Asynchronous JavaScript
  • Callbacks, Promises, Async/Await
  • Event Loop + Callback Queue
  • Task Queue + Microtask Queue
  • Concurrency + Parallelism
  • Modules in Javascript

What's the bottom line?

Having a deep understanding of these core JavaScript concepts is key to taking your career as a Developer to the next level.

They are timeless topics that will also allow you to stay current with any new library or framework that comes out in the JavaScript ecosystem.

I guarantee that you won't find a course as detailed and as well explained as this one. And by the end of the course, you will be in the top 10% of JavaScript Developers 💪.

When's the best time to get started? Today!

There's never a bad time to learn in-demand skills. But the sooner, the better. So take your first step to becoming a Senior JavaScript Developer by joining the ZTM Academy. You'll have a clear roadmap to developing the skills to build your own projects, get hired, and advance your career.

Join Zero To Mastery Now

Don't just take our word for it

Our courses and community have helped 1,000s of Zero To Mastery students go from zero to getting hired to levelling up their skills and advancing their careers to new heights.

Sergey Sharonov

Very good coverage of intermediate and advanced JS topics, including latest ES standards, with lots of bonus material and exercises. I liked the way Andrei writes codes live, make small mistakes and fixes them on the fly explaining any tricky parts.

Sergey Sharonov

Ludolf Pretorius

Andrei breaks down concepts in such a way that it's easy for anyone to understand. The content is very thorough and includes topics that I have struggled to find good documentation on. I feel confident in my level as a developer because of this course.

Ludolf Pretorius

Mark Anthony Servanda

I've never been so motivated to learn more about JavaScript and web development in general since I started this course. I've been coding for years and missing some important concepts and best practices which this course helped me to internalize.

Mark Anthony Servanda

James Whitney

This course is fantastic and has definitely made me a better and more confident JavaScript developer. Andrei is a great instructor and I would recommend this course to anyone looking to gain a deeper understanding the language.

James Whitney

This course was so great. Thanks to this course, I got a job! I also got a better understanding of Javascript and much more. I really thank you Andrei, you made me a wiser and more confident developer.

Eduardo Baños

I took this after Andrei's Complete Web Developer. This course made me such a better developer, who understands programming and JavaScript concepts so much better. I'm glad I took this course. The job offers are already starting to arrive :)

Shakked Brand

Course curriculum

To make sure this course is a good fit for you, you can start learning advanced JavaScript concepts for free right now by clicking any of the PREVIEW links below.

Introduction

4 lectures

Advanced JavaScript Concepts3:55

PREVIEW

How To Succeed In This Course5:37

PREVIEW

Exercise: Meet Your Classmates and Instructor

BEGIN

How-to's: Speed up videos, Downloading videos, Subtitles

PREVIEW

JavaScript Foundation

25 lectures

Section Overview2:27

PREVIEW

Javascript Engine5:28

PREVIEW

Exercise: Javascript Engine0:56

PREVIEW

Inside The Engine4:05

PREVIEW

Exercise: JS Engine For All2:33

PREVIEW

Interpreters and Compilers6:21

PREVIEW

Babel + TypeScript

PREVIEW

Inside the V8 Engine8:56

PREVIEW

Comparing Other Languages4:15

PREVIEW

Writing Optimized Code8:53

PREVIEW

WebAssembly3:15

PREVIEW

Call Stack and Memory Heap14:37

PREVIEW

Stack Overflow3:21

PREVIEW

Garbage Collection4:30

PREVIEW

Memory Leaks6:34

PREVIEW

Single Threaded1:58

PREVIEW

Exercise: Issue With Single Thread2:40

PREVIEW

Javascript Runtime14:07

PREVIEW

Node.js6:27

BEGIN

Exercise: Fix This Code

BEGIN

Section Review5:02

BEGIN

Web Developer Monthly

BEGIN

Advanced JavaScript Cheatsheet

BEGIN

Endorsements On LinkedIn

BEGIN

Unlimited Updates

BEGIN

Javascript Foundation II

26 lectures

Section Overview1:06

BEGIN

Execution Context8:35

BEGIN

Lexical Environment5:39

BEGIN

Hoisting10:47

BEGIN

Exercise: Hoisting3:58

BEGIN

Exercise: Hoisting 27:06

BEGIN

Exercise: Hoisting 3

BEGIN

Function Invocation6:59

BEGIN

arguments Keyword4:22

BEGIN

Variable Environment6:41

BEGIN

Scope Chain12:20

BEGIN

[[scope]]2:03

BEGIN

Exercise: JS is Weird4:57

BEGIN

Function Scope vs Block Scope3:35

BEGIN

Exercise: Block Scope3:45

BEGIN

Global Variables4:10

BEGIN

IIFE13:38

BEGIN

this Keyword16:59

BEGIN

Exercise: Dynamic Scope vs Lexical Scope12:08

BEGIN

call(), apply(), bind()11:17

BEGIN

Exercise: call(), apply()

BEGIN

bind() and currying3:42

BEGIN

Exercise: this Keyword3:09

BEGIN

Exercise: this Keyword 2

BEGIN

Context vs Scope1:08

BEGIN

Section Review2:47

BEGIN

Types in JavaScript

12 lectures

Section Overview1:22

BEGIN

Javascript Types13:40

BEGIN

Array.isArray()2:17

BEGIN

Pass By Value vs Pass By Reference17:06

BEGIN

Exercise: Compare Objects

BEGIN

Exercise: Pass By Reference

BEGIN

Type Coercion9:02

BEGIN

Exercise: Type Coercion

BEGIN

Quick Note: Upcoming Videos

BEGIN

JTS: Dynamic vs Static Typing11:50

BEGIN

JTS: Weakly vs Strongly Typed3:18

BEGIN

JTS: Static Typing In JavaScript9:45

BEGIN

The 2 Pillars: Closures and Prototypal Inheritance

26 lectures

Section Overview1:54

BEGIN

Functions Are Objects9:18

BEGIN

First Class Citizens4:04

BEGIN

Extra Bits: Functions3:25

BEGIN

Higher Order Functions17:14

BEGIN

Exercise: Higher Order Functions3:45

BEGIN

Closures15:10

BEGIN

Exercise: Closures3:18

BEGIN

Closures and Memory7:52

BEGIN

Closures and Encapsulation7:41

BEGIN

Exercise: Closures 21:31

BEGIN

Solution: Closures 22:34

BEGIN

Exercise: Closures 31:28

BEGIN

Solution: Closures 33:47

BEGIN

Closures Review1:34

BEGIN

Prototypal Inheritance6:47

BEGIN

Prototypal Inheritance 29:07

BEGIN

Prototypal Inheritance 37:46

BEGIN

Prototypal Inheritance 410:35

BEGIN

Prototypal Inheritance 52:43

BEGIN

Prototypal Inheritance 69:16

BEGIN

Exercise: Prototypal Inheritance2:55

BEGIN

Solution: Prototypal Inheritance8:20

BEGIN

Exercise: Prototypal Inheritance with this

BEGIN

Exercise: Imposter Syndrome2:55

BEGIN

Section Review3:57

BEGIN

Object Oriented Programming

19 lectures

Section Overview6:24

BEGIN

OOP and FP3:50

BEGIN

OOP Introduction3:21

BEGIN

OOP1: Factory Functions8:20

BEGIN

OOP2: Object.create()7:38

BEGIN

OOP3: Constructor Functions13:00

BEGIN

More Constructor Functions8:38

BEGIN

Funny Thing About JS...2:52

BEGIN

OOP4: ES6 Classes8:44

BEGIN

Object.create() vs Class1:48

BEGIN

this - 4 Ways4:44

BEGIN

Inheritance14:41

BEGIN

Inheritance 25:25

BEGIN

ES2022: Private Class Fields + Methods

BEGIN

Public vs Private4:21

BEGIN

OOP in React.js3:05

BEGIN

4 pillars of OOP8:17

BEGIN

Exercise: OOP and Polymorphism

BEGIN

Reviewing OOP2:06

BEGIN

Functional Programming

20 lectures

Section Overview2:29

BEGIN

Functional Programming Introduction3:31

BEGIN

Exercise: Amazon3:37

BEGIN

Pure Functions4:35

BEGIN

Pure Functions 27:47

BEGIN

Can Everything Be Pure?4:33

BEGIN

Idempotent4:08

BEGIN

Imperative vs Declarative6:27

BEGIN

Immutability5:28

BEGIN

Higher Order Functions and Closures7:49

BEGIN

Currying4:24

BEGIN

Partial Application4:24

BEGIN

Quick Note: Upcoming Videos

BEGIN

MCI: Memoization 17:47

BEGIN

MCI: Memoization 23:56

BEGIN

Compose and Pipe12:33

BEGIN

Arity1:46

BEGIN

Is FP The Answer To Everything?2:54

BEGIN

Solution: Amazon21:48

BEGIN

Reviewing FP5:14

BEGIN

OOP vs FP

3 lectures

Composition vs Inheritance16:20

BEGIN

OOP vs FP4:29

BEGIN

OOP vs FP 25:19

BEGIN

Asynchronous JavaScript

12 lectures

Section Overview4:51

BEGIN

Quick Note: Upcoming Videos

BEGIN

How JavaScript Works24:12

BEGIN

Promises22:26

BEGIN

ES8 - Async Await15:22

BEGIN

ES9 (ES2018)5:21

BEGIN

ES9 (ES2018) - Async11:11

BEGIN

Job Queue6:55

BEGIN

Parallel, Sequence, Race10:00

BEGIN

ES2020: allSettled()4:22

BEGIN

ES2021: any()

BEGIN

Threads, Concurrency and Parallelism11:27

BEGIN

Modules in JavaScript

10 lectures

Section Overview2:44

BEGIN

What Is A Module?11:05

BEGIN

Module Pattern13:05

BEGIN

Module Pattern Pros and Cons4:53

BEGIN

CommonJS, AMD, UMD10:05

BEGIN

ES6 Modules8:52

BEGIN

Optional: ES2022 Top Level Await3:46

BEGIN

Optional: ES2022 Exercise

BEGIN

Optional: ES2022 Await Import5:05

BEGIN

Section Review2:14

BEGIN

Error Handling

8 lectures

Section Overview1:07

BEGIN

Errors In JavaScript8:52

BEGIN

Try Catch9:53

BEGIN

Async Error Handling12:56

BEGIN

Async Error Handling 23:30

BEGIN

Exercise: Error Handling

BEGIN

Extending Errors5:08

BEGIN

Section Review1:18

BEGIN

Thank You

8 lectures

Learning Guideline

BEGIN

Endorsements On LinkedIn

BEGIN

Become an Alumni

BEGIN

Coding Challenges

BEGIN

Thank You0:39

BEGIN

Review This Course!

BEGIN

Bonus Materials

BEGIN

Become a ZTM Ambassador ➡ Refer new students. Earn cash.

BEGIN

Bonus: Data Structures In JavaScript

26 lectures

Quick Note: Upcoming Videos

BEGIN

Section Overview1:58

BEGIN

What Is A Data Structure?5:53

BEGIN

How Computers Store Data12:33

BEGIN

Data Structures In Different Languages3:27

BEGIN

Operations On Data Structures3:05

BEGIN

Array Introduction13:51

BEGIN

Static vs Dynamic Arrays6:40

BEGIN

Implementing An Array17:19

BEGIN

Strings and Arrays1:04

BEGIN

Exercise: Reverse A String1:35

BEGIN

Solution Reverse A String10:31

BEGIN

Exercise: Merge Sorted Arrays0:44

BEGIN

Solution: Merge Sorted Arrays14:12

BEGIN

Arrays Review3:28

BEGIN

Hash Tables Introduction4:10

BEGIN

Hash Function5:56

BEGIN

Hash Collisions9:43

BEGIN

Hash Tables in Different Languages3:30

BEGIN

Exercise: Implement A Hash Table3:51

BEGIN

Solution: Implement A Hash Table17:24

BEGIN

keys()6:11

BEGIN

Hash Tables vs Arrays2:01

BEGIN

Exercise: First Recurring Character1:18

BEGIN

Solution: First Recurring Character16:11

BEGIN

Hash Tables Review6:09

BEGIN

Appendix I: Javascript Basics

14 lectures

Quick Note: Upcoming Videos

BEGIN

What is JavaScript?5:33

BEGIN

Your First JavaScript11:41

BEGIN

Variables15:09

BEGIN

Control Flow16:36

BEGIN

JavaScript On Our Webpage9:05

BEGIN

Functions23:53

BEGIN

Data Structures: Arrays13:06

BEGIN

Data Structures: Objects15:25

BEGIN

Exercise: Build Facebook11:16

BEGIN

JavaScript Terminology3:43

BEGIN

Loops22:22

BEGIN

Exercise: Build Facebook 28:02

BEGIN

JavaScript Keywords3:02

BEGIN

Appendix II: Intermediate Javascript

20 lectures

Quick Note: Upcoming Videos

BEGIN

Scope10:25

BEGIN

Advanced Control Flow11:41

BEGIN

ES5 and ES626:41

BEGIN

Advanced Functions20:04

BEGIN

Advanced Arrays16:40

BEGIN

Advanced Objects24:51

BEGIN

ES73:06

BEGIN

ES89:19

BEGIN

Note: ES9 + ES8 Async Await

BEGIN

ES10 (ES2019)16:49

BEGIN

Advanced Loops12:04

BEGIN

ES2020 Part 110:07

BEGIN

ES2020 Part 23:29

BEGIN

ES2020 Part 34:10

BEGIN

ES2020: globalThis3:14

BEGIN

ES20213:08

BEGIN

ES20223:25

BEGIN

Debugging8:23

BEGIN

Modules13:19

BEGIN

Bonus: Extra Bits

2 lectures

Notes To Review The Course

BEGIN

AMA - 100,000 Students!!38:30

BEGIN

Meet your instructor

Your JavaScript instructor (Andrei) isn't just an expert with years of real-world professional experience. He has been in your shoes. He makes learning fun. He makes complex topics feel simple. He will motivate you. He will push you. And he will go above and beyond to help you succeed.

Andrei Neagoie

Hi, I'm Andrei Neagoie!

Andrei, lead instructor of Zero To Mastery Academy, has taught 1,000,000+ students worldwide how to code and get hired. ZTM grads work for world-class companies like Apple, Google, Amazon, Tesla, IBM, Facebook, Shopify and many more.

SEE MY BIO & COURSES

Andrei Neagoie

Senior Software Engineer

Frequently asked questions

Are there any prerequisites for this course?

  • Basic understanding of JavaScript. Don't know JavaScript? No problem, you'll also get access to Andrei's Coding Bootcamp which will teach you everything you need to know to get up to speed
  • A computer (Linux/Windows/Mac) with an internet connection

Who is this course for?

  • Developers who want to be considered in the top 10% of JavaScript programmers
  • Junior Web Developers and JavaScript Developers that want to boost their skills and confidence by learning intermediate and advanced JavaScript concepts
  • Programmers and Bootcamp graduates who don't want to waste time on the basics found in a majority of the coding tutorials and courses out there
  • You want to learn Advanced JavaScript from a Senior Developer that has real-world experience working in the industry

Do you provide a certificate of completion?

We definitely do and they are quite nice. You will also be able to add Zero To Mastery Academy to the education section of your LinkedIn profile as well.

Are there subtitles?

Yes! We have high quality subtitles in 11 different languages: English, Spanish, French, German, Dutch, Romanian, Arabic, Hindi, Portuguese, Indonesian, and Japanese.

You can even adjust the text size, color, background and more so that the subtitles are perfect just for you!

Still have more questions about the Academy?

Still have more questions specific to the Academy membership? No problem, we answer some more here.

Invest in a better you. For less than a coffee a day.

Choose your currency:
$ USD US Dollar
Lifetime
100% OFF$999
$999
Only pay once, ever
You're serious about advancing your career and never getting left behind
Start Learning Now

MOST POPULAR

Save 40% vs. monthly (that's $189 a year)
Annual
100% OFF$279 / year
$23 / month
$279 / year
You're committed to getting hired and starting a career in tech
Start Learning Now
Monthly
100% OFF$39 / month
$39 / month
You're ready to upskill and advance your career
Start Learning Now

Every ZTM membership includes:

Unlimited access to all courses, projects + workshops, and career paths
Access to our private Discord with 400,000+ members
Access to our private LinkedIn networking group
Custom ZTM course completion certificates
Live career advice sessions with mentors, every month
Full access to all future courses, content, and features
100% RISK FREE

We know you'll love ZTM. That's why we provide a no hassle, 30-day money back guarantee.