The object model, this and binding, classes, the microtask queue, generators, modules and the patterns interviews actually ask about.
This course assumes you can already read and write JavaScript, and that you have met scope, closures and the call stack. It is about the layer underneath: how objects actually find their properties, what this is bound to and why it breaks, what class is doing when you are not looking, and why a prom...
by
Advanced level
About 10 hours to complete
40 lessons, 10 units
240 practice questions
Gamified and interactive
Online, at your own pace
by
Advanced level
About 10 hours to complete
40 lessons, 10 units
240 practice questions
Gamified and interactive
Online, at your own pace
__proto__ and .prototype apart, and say what each one is forthis binding rules in precedence order, and fix a lost thiscall, apply and bind from scratchclass, extends and compile down to• 40 lessons• 10 units• Certificate of completion
UNIT
1Objects find their properties by following a chain of links. This unit covers what that chain is, how __proto__ and .prototype differ, how to build and inspect a chain deliberately, and the four steps new performs.
UNIT
2What this refers to is decided at the call site, by four rules in a fixed order. This unit covers those rules, the two methods that let you choose this directly, the one that fixes it permanently, and the bug that appears whenever a method is separated from its object.
UNIT
3A class is a function whose prototype holds the methods, with guard rails the older syntax could not offer. This unit covers what class compiles to, how extends and super work on the chain, static members and genuinely private fields, and the accessor patterns that keep an object's state valid.
UNIT
4JavaScript runs one thing at a time, so everything that waits happens elsewhere and comes back through a queue. This unit covers the two queues and which one goes first, how to predict mixed output, the two ways a page freezes, and what a timer delay actually promises.
UNIT
5A promise is an object with a state, a value, and a guarantee that it settles exactly once. This unit covers those states, what promises replaced, how to create one when an API is not promise-based, how chaining and error propagation work, and the four combinators.
UNIT
6async and await are a different spelling of the promises in the last unit, with the same scheduling underneath. This unit covers what await really does to a function, how try and catch reach asynchronous failures, the sequencing bug that costs the most real time, and top-level await.
UNIT
7for-of, spread and destructuring all call one method, and any object that implements it joins in. This unit covers that protocol, writing an iterator by hand, generators as the short way to write one, and async iteration for values that arrive over time.
UNIT
8Modules changed more than file layout: they changed when code runs, what an import holds, and how many times a file is evaluated. This unit covers the two export forms and live bindings, dynamic import and code splitting, and what happens when two modules import each other.
UNIT
9Throwing unwinds the stack, and everything else in this unit follows from that. It covers what escapes a try block, error classes a caller can branch on, the failures that cross an async boundary and cannot be caught where they started, and the references that keep things alive after you are done with them.
UNIT
10Five techniques you reach for deliberately. Debounce and throttle control how often work happens, currying and composition control how functions are assembled, memoisation trades memory for time, and a Proxy intercepts the operations on an object itself.
Validate your expertise — Earn a DevLoom certificate that names the course you completed.
Official, evergreen credentials — Each course certificate you earn has its own page, unique ID, and once earned, it never expires.
Showcase your achievement — In addition to automatic exposure on your Devloom profile, you can easily add this certificate to your CV, resume, website, or LinkedIn profile.
I'm a web development enthusiast who loves building with React and NextJS, always looking for ways to optimize performance and create seamless experiences.
I'm also deeply interested in SystemDesign, constantly exploring how things scale and work behind the scenes. Technology excites me, and I enjoy learning and applying new tools and frameworks to solve real-world problems.
Beyond coding, I have a creative mindset, always working on side projects that bring ideas to life.
Free to start. Create an account to save your progress and earn a certificate when you finish.
super# fields, static members, getters and setters correctlySymbol.iterator, and write generators__proto__ and .prototype apart, and say what each one is forthis binding rules in precedence order, and fix a lost thiscall, apply and bind from scratchclass, extends and super compile down to# fields, static members, getters and setters correctlySymbol.iterator, and write generatorsI'm a web development enthusiast who loves building with React and NextJS, always looking for ways to optimize performance and create seamless experiences.
I'm also deeply interested in SystemDesign, constantly exploring how things scale and work behind the scenes. Technology excites me, and I enjoy learning and applying new tools and frameworks to solve real-world problems.
Beyond coding, I have a creative mindset, always working on side projects that bring ideas to life.