Grokking Advanced JavaScript

Learn how JavaScript really works: error handling, regular expressions, prototypes and classes, the event loop, promises, async and await, and this.

Level:
Intermediate
Study Time:
10h
Lessons:
40
Playgrounds:
123
Assessments:
62
Updated
Last week
4.7
(31 ratings)
667 learners
Arslan Ahmad
Created byArslan Ahmad
Ex FAANG Manager, Expert Behind Grokking Advanced JavaScript

Course Overview

Many developers can write JavaScript that works without being able to explain why it works. A promise handler runs before a timer that was set first, a method loses its this when it is passed as a callback, and a class turns out to be a function with a prototype. This course explains those behaviors, so you can predict what code will do before you run it. It assumes you already know variables, functions, arrays, objects, and loops. You begin with error handling, so that one bad input does not stop a whole program, and with regular expressions for checking and searching text. The course then explains how objects share behavior through prototypes, and builds from there to classes, private fields, inheritance, and mixins. The asynchronous chapters show how the event loop orders work, and teach callbacks, promises, and async and await on one running example. The last chapter covers this, hoisting, currying, BigInt, and the mistakes that most often produce wrong results without an error. Most lessons contain code you can run and change in the lesson, diagrams follow each mechanism step by step, and every chapter ends with an assessment that explains each answer.

Grokking Advanced JavaScript Image
This course
Lifetime access to this course
One-time payment. Yours forever.
All 60 courses
Annual plan
Discussions
Certificate
Free updates
Own everything, once
Grokking Advanced JavaScript Image
This course
Lifetime access to this course
One-time payment. Yours forever.
All 60 courses
Annual plan
Discussions
Certificate
Free updates
Own everything, once

What you'll learn in Grokking Advanced JavaScript

  • Tell syntax errors, runtime errors, and logical errors apart, and know which of them a program can catch.
  • Throw your own errors with clear messages, and choose the right built-in error type for each problem.
  • Explain how a property lookup moves along the prototype chain, and what the new keyword does step by step.
  • Build class hierarchies with extends and super, override methods, and share behavior across unrelated classes with mixins.
  • Write asynchronous code with callbacks, promises, promise chains, and async and await, and handle errors at each step.
  • Predict what this refers to in every kind of call, and set it with call, apply, and bind.
  • Explain hoisting and the temporal dead zone, avoid common JavaScript mistakes, and check your understanding with an assessment at the end of every chapter.
  • Use try, catch, and finally so that one bad input does not stop a whole program, and so that cleanup code always runs.
  • Read and write regular expressions, and use test, exec, match, matchAll, and replace to validate, search, and change text.
  • Write classes with constructors, methods, static members, getters and setters, and private fields.
  • Explain why asynchronous code does not finish in the order it is written, using the call stack, the task queue, and the microtask queue.
  • Run independent asynchronous steps at the same time with Promise.all, and loop over values that arrive over time with for await.
  • Use destructuring, rest parameters, BigInt, the nullish coalescing and optional chaining operators, currying, and self-invoking functions.

Course Content

• 7 Chapters • 40 Lessons
1.

Introduction

2 lessons

Who should take this course?

Course Overview

Errors in JavaScript

try...catch

try...catch...finally

The throw Statement

Chapter Assessment: Error Handling

What people say about our courses

Arijeet avatar
Arijeet
Software Engineer
Just completed the “Grokking the system design interview”. It's amazing and super informative. Have come across very few courses that are as good as this!
Steven Zhang avatar
Steven Zhang
Software Engineer
Just wanted to say thanks for your Grokking the system design interview resource (https://lnkd.in/g4Wii9r7) - it helped me immensely when I was interviewing from Tableau (very little system design exp) and helped me land 18 FAANG+ jobs!
Simon Barker avatar
Simon Barker
Software Engineer
This is what I love about http://designgurus.io’s Grokking the coding interview course. They teach patterns rather than solutions.
Eric avatar
Eric
Software Engineer
I've completed my first pass of "grokking the System Design Interview" and I can say this was an excellent use of money and time. I've grown as a developer and now know the secrets of how to build these really giant internet systems.
Ashley Pean avatar
Ashley Pean
Software Engineer
Check out Grokking the Coding Interview. Instead of trying out random Algos, they break down the patterns you need to solve them. Helps immensely with retention!
Roger Cruz avatar
Roger Cruz
Software Engineer
The world gets better inch by inch when you help someone else. If you haven't tried Grokking The Coding Interview, check it out, it's a great resource!

About the Author

Arslan Ahmad

Arslan Ahmad

Design Gurus Founder
Ex-FAANG Manager
Meta
Microsoft
Google
Amazon
Uber

Industry Expertise & Leadership

Arslan Ahmad is the lead author of Grokking Advanced JavaScript. As the founder of Design Gurus and a former FAANG hiring manager, he has worked at industry giants like Facebook (now Meta) and Microsoft.

He has conducted hundreds of system design interviews, giving him unique insight into what top tech companies look for in candidates.

The course also incorporates expertise from senior engineers at Google, Meta, Amazon, Microsoft, and Uber, ensuring you learn system design best practices from professionals who have built and scaled real-world systems.

500+

Interviews Conducted

10k+

Students Taught

Related Courses

Grokking the Coding Interview: Patterns for Coding Questions
The 24 essential patterns behind every coding interview question. Available in Java, Python, JavaScript, C++, C#, and Go. The most comprehensive coding interview course with 543 lessons. A smarter alternative to grinding LeetCode.
4.6
198K learners
Discounted price for Your Region

$197

Grokking React Fundamentals
4.4
889 learners
Discounted price for Your Region

$48

Grokking JavaScript Fundamentals
Learn to code in JavaScript and kickstart your web development journey with our beginner-friendly course.
5
631 learners
Discounted price for Your Region

$48

FAQs

It is a course on the parts of JavaScript that larger programs depend on: error handling, regular expressions, prototypes and classes, asynchronous code with callbacks, promises, and async and await, and a set of features such as this, hoisting, destructuring, BigInt, and currying.

It is for developers who can already write small JavaScript programs and now want to understand how the language really works. That includes people who finished a JavaScript fundamentals course, and front-end or back-end developers who use JavaScript at work and read code they do not fully understand.

You should be comfortable with variables declared with let and const, if statements, loops, functions, arrays, and objects, and you should be able to read the output of console.log. You do not need experience with Node.js, a framework, or the browser DOM.

Yes. Most lessons contain runnable examples that you can edit and run in the lesson itself, and each one prints its result with console.log. The output shown in the lessons was produced by running the same code.

Yes. Each of the six chapters ends with an assessment of multiple-choice questions, and each attempt draws half of the chapter questions. Most questions show a few lines of code and ask what they print or why they fail, and every option comes with an explanation.

Yes. The asynchronous chapters show how the call stack, the task queue, and the microtask queue decide the order in which code runs, and why a promise handler runs before a timer that was set first. Diagrams follow each example step by step.

Yes. It starts with callbacks and their problems, then teaches how to create a promise, connect promises in a chain, handle a rejection, write the same logic with async and await, run independent steps at the same time with Promise.all, and loop over values that arrive over time with for await.

Yes. It explains prototypes first, because classes are built on them, then covers constructor functions, classes, getters and setters, private fields, inheritance, abstraction, polymorphism, and mixins, with diagrams of where each property and method is stored.

Neither in particular. The course teaches the JavaScript language itself, which is the same in the browser and in Node.js. The examples run as plain JavaScript and do not depend on a web page, a framework, or a server.

It does not teach modules with import and export, the browser DOM, TypeScript, or frameworks such as React. It teaches the language features that all of those depend on.

Design Gurus logo
One-Stop Portal For Tech Interviews.
About Us
Our Team
Careers
Partners
Contact Us
Become Affiliate
Copyright © 2026 Design Gurus, LLC. All rights reserved.