CURRICULUM
Structured learning path. From primitives to asynchronous patterns.
Tier A: Core JavaScript (Must Master)
Variables & Scope
var, let, const, block vs function scope, global scope, lexical environment, hoisting, temporal dead zone
Data Types & Values
Primitives, objects, mutability, value vs reference, typeof, instanceof
Operators
Arithmetic, logical, comparison, assignment, ternary, nullish coalescing, optional chaining, delete, in, instanceof
Control Flow
if/else, switch, loops, break/continue, try/catch/finally, throw
Function Fundamentals
Function declarations vs expressions, parameters, return values, recursion
Object Literals & Property Access
Dot vs bracket notation, computed properties, shorthand syntax
Arrays & Essential Methods
map, filter, reduce, forEach, find, some, every, includes, indexOf, slice, splice (mutation vs non-mutation)
Strings & Essential Methods
slice, split, includes, indexOf, replace, trim, startsWith, endsWith, padStart, padEnd, repeat, charAt
Type Conversion & Equality
Implicit vs explicit coercion, ToPrimitive/ToNumber, == vs ===, truthy/falsy rules
Literals & Syntax Rules
Object {}, array [], function syntax, template literals, numeric literals, regex literals, strict vs sloppy mode
Callbacks
Continuation-passing style, error-first callbacks
Higher-Order Functions
Functions as values, callbacks, composition, currying basics
Scope Chain & Lexical Environment
Variable resolution, nested scopes, shadowing
Closures
Lexical scope retention, private state, memory implications
Execution Context & Call Stack
Global vs function execution context, creation vs execution phase, call stack behavior
`this` Binding Rules
Default, implicit, explicit, new binding, arrow function behavior
Function Methods (call / apply / bind)
Explicit this binding patterns, method borrowing
Arguments Object & Rest Parameters
arguments object, aliasing behavior, rest syntax, spread operator
Arrow Functions
Lexical this, syntax differences, limitations, use cases
Prototype Chain
Prototypal inheritance, [[Prototype]], Object.create, delegation model
Constructor Functions & new
new operator steps, instance creation, constructor behavior
Class Syntax (ES6+)
Class sugar over prototypes, extends, super, static members, private fields
Regular Expressions (Essential)
test, match, replace, search, basic groups and flags
Error Handling & Custom Errors
Built-in error types, custom errors, propagation, stack traces
Event Loop & Concurrency Model
Call stack, task queues, microtasks, run-to-completion semantics
Microtasks & queueMicrotask
Promise jobs, scheduling guarantees vs macrotasks
Promises
States, chaining, combinators, error propagation
Async / Await
Sequential vs parallel async code, try/catch error handling
ES Modules
import/export, named vs default exports, live bindings, module scope
Tier B: Advanced JavaScript (Learn -> Revisit)
Property Descriptors
writable, enumerable, configurable, getters/setters, Object.defineProperty
Iteration Protocols
Iterable vs iterator, Symbol.iterator, how for...of and spread work internally
Template Literals (Advanced)
Tagged templates, raw strings
Map, Set, WeakMap, WeakSet
Key equality, weak references, garbage collection behavior
Typed Arrays & Binary Data
ArrayBuffer, DataView, typed array views
Numbers & IEEE-754
Floating-point precision, NaN, Infinity, signed zero
Math Object
Rounding, randomness, mathematical utilities
BigInt
BigInt literals, arithmetic, interoperability limits
Date
Timestamps, time zones, pitfalls
Intl API
Localization, number and date formatting
JSON
Serialization, parsing, replacers, revivers
Generators & Async Iteration
yield, delegation, async generators, for await...of
Dynamic Imports
import(), lazy loading, code splitting
Tier C: JavaScript Internals & Deep Dive (Optional)
ECMAScript Internals
Execution contexts, realms, jobs, abstract operations
Memory Model & Garbage Collection
Heap vs stack, reachability, GC strategies, memory leaks
Shared Memory & Atomics
SharedArrayBuffer, Atomics operations, synchronization
Advanced Async Control Flow
Debounce, throttle, retries, backoff, cancellation
Metaprogramming
Proxy, Reflect, invariants
eval & Dynamic Code Execution
Security risks, scope behavior, safer alternatives
Language-Level Security
Prototype pollution, object hardening, defensive patterns
Legacy & Edge Syntax
with, labels, deprecated syntax, historical context