JavaScript
47 highly-curated topics available for revision.
1. Fundamentals
The Call Stack
HighHow JavaScript keeps track of function execution.
Strict Equality (== vs ===)
HighWhy you should never use double equals.
Execution Context
HighThe environment where JavaScript evaluates and executes code.
Hoisting
HighWhy variables and functions seem to move to the top.
Lexical Scope
HighHow the physical location of code dictates access.
null vs undefined
MediumUnderstanding the two empty states in JavaScript.
Primitive vs Reference Types
HighHow memory determines variable assignment.
Scope
HighThe rules for finding variables.
Strict Mode
MediumOpting into a safer JavaScript engine.
Temporal Dead Zone (TDZ)
HighWhy let and const are safer than var.
Truthy and Falsy
MediumHow JavaScript evaluates non-booleans in conditional statements.
Type Coercion
HighJavaScript's automatic data type conversion.
2. Functions
Arrow Functions
HighA shorter syntax and lexical `this` binding.
call, apply, and bind
HighManually manipulating the `this` keyword.
Closures
HighFunctions remembering where they were born.
Currying
MediumTransforming multiple arguments into a sequence of functions.
Function Declarations vs Expressions
MediumThe two ways to create functions and their hoisting behaviors.
Higher-Order Functions
HighTreating functions as data.
Immediately Invoked Function Expressions (IIFE)
Functions that run the moment they are created.
The 'this' Keyword
HighThe most confusing keyword in JavaScript.
3. Objects
Prototypes
HighHow JavaScript objects inherit features.
The Prototype Chain
HighThe mechanism for property lookup and inheritance.
Classes
MediumSyntactic sugar over prototypal inheritance.
Object Copying (Shallow vs Deep)
HighHow to properly duplicate data structures.
Property Descriptors
MediumThe hidden configuration behind every object property.
4. Async
The Event Loop
HighHow single-threaded JavaScript handles concurrency.
Promises
HighThe modern object for managing asynchronous success and failure.
Microtasks vs Tasks (Macrotasks)
MediumThe priority lanes of the Event Loop.
Async / Await
HighSyntactic sugar that makes Promises look synchronous.
Promise Combinators
HighHandling multiple Promises simultaneously.
5. Runtime
6. Modern JS
Modules (ESM vs CommonJS)
HighHow JavaScript breaks code into reusable files.
Iterators and Iterables
MediumThe protocol behind `for...of` loops and the Spread Operator.
Generators
MediumFunctions that can pause and resume their execution.
Symbols
Creating guaranteed unique identifiers.
7. Coding Interviews
Debounce
HighDelaying execution until the user stops acting.
Throttle
HighEnforcing a strict execution speed limit.
Deep Clone
HighImplementing a recursive object copier.
Implement Promise.all
HighRebuilding the core async combinator from scratch.
Concurrency Limiter
HighExecuting massive promise arrays without crashing the server.
8. Output Based
Output: Closures
HighTricky outputs designed to test Closure mechanics.
Output: Hoisting
HighTricky outputs designed to test execution phases.
Output: The 'this' Keyword
HighTricky outputs designed to test execution context binding.
Output: Event Loop
HighTricky outputs testing Macrotasks vs Microtasks.