JavaScript
Master the language, browser platform, asynchronous programming, and quality practices behind modern web applications.
Curriculum
Phase 1Language Core0/2
Phase 2Data and Functions0/2
Phase 3OOP and Async0/2
Phase 4Web APIs and Ecosystem0/2
Variables and Data Types
let, const, and var
Declare bindings with the right scope and make reassignment visible.
0 of 8 completePrimitive Data Types
Understand the foundational value types and memory representation in JavaScript.
0 of 9 completeObjects and references
Understand that objects, arrays, and functions are reference values with shared identity.
0 of 9 completeOperators and Control Flow
Operators and expressions
Compose arithmetic, logical, nullish, and optional operations without hiding precedence or valid zero values.
0 of 8 completeConditions and branching
Express business rules with guard clauses, complete status handling, and branches that expose unsupported states.
0 of 8 completeLoops and iteration
Choose array methods or loops by intent, control asynchronous work, and avoid mutating a collection during traversal.
0 of 9 completeValidation and boundaries
Normalize and validate forms, URLs, APIs, files, and environment values before application logic trusts them.
0 of 9 completeArrays and Objects
Array operations
Select map, filter, find, some, every, and reduce by the question being answered.
0 of 9 completeImmutable updates
Copy only the changed branches of arrays and objects.
0 of 7 completeObject shaping
Use destructuring, computed keys, and deliberate field selection.
0 of 8 completeMap and Set
Choose keyed and unique collections when plain objects or arrays obscure intent.
0 of 7 completeSorting and grouping
Sort with explicit comparators and group without mutating shared input.
0 of 8 completeFunctions and Scope
Function contracts
Design inputs, outputs, and failure behavior that callers can rely on.
0 of 7 completeParameters and defaults
Use defaults, rest parameters, and destructuring without confusing missing values with null.
0 of 8 completeLexical scope
Predict identifier lookup, shadowing, and temporal-dead-zone behavior.
0 of 8 completeClosures and private state
Use retained lexical state for factories, memoization, and subscriptions.
0 of 8 completethis and call sites
Understand method receivers, detached methods, bind, call, and apply.
0 of 8 completePrototypes and Classes
Properties and descriptors
Read, define, enumerate, and protect object properties deliberately.
0 of 8 completePrototype chain
Trace property lookup and method sharing through prototypes.
0 of 8 completeClasses and private fields
Use classes as syntax over prototypes with explicit instance invariants.
0 of 9 completeComposition
Assemble behavior from focused collaborators instead of deep inheritance trees.
0 of 7 completeIdentity and cloning
Choose reference comparison, shallow copy, structured cloning, or serialization knowingly.
0 of 8 completeAsync and Event Loop
Event loop
Predict call-stack, microtask, and task ordering before asynchronous code grows complex.
0 of 8 completePromise lifecycle
Understand pending, fulfilled, rejected, chaining, and error propagation.
0 of 8 completeAsync functions
Write sequential asynchronous control flow with explicit failure handling.
0 of 7 completeFetch and HTTP
Handle methods, headers, status codes, content types, and response bodies.
0 of 9 completeTimeouts and cancellation
Stop obsolete or excessively slow work with AbortController.
0 of 8 completeConcurrency and retries
Bound parallel work and retry only safe transient failures.
0 of 9 completeDOM and Events
DOM rendering
Create, update, and remove elements while keeping state and markup aligned.
0 of 8 completeEvents and delegation
Use propagation, delegation, and default behavior intentionally.
0 of 8 completeForms and validation
Use native form semantics before adding custom validation.
0 of 9 completeBrowser APIs
Choose the browser capability that matches storage, networking, observation, or device access needs.
0 of 9 completeFocus and accessibility
Preserve keyboard order, accessible names, announcements, and focus after UI changes.
0 of 8 completeCleanup and lifecycle
Remove listeners, timers, observers, and stale DOM references when features end.
0 of 8 completeModules and Tooling
ES module boundaries
Organize imports and exports around stable responsibilities.
0 of 9 completepackage.json and scripts
Describe runtime entry points, module type, commands, and supported engines.
0 of 8 completeVersions and lockfiles
Interpret semantic ranges and keep dependency resolution repeatable.
0 of 7 completePackage evaluation
Assess maintenance, license, size, security, and replacement cost before adoption.
0 of 9 completeBundling and delivery
Understand tree-shaking, code splitting, source maps, and runtime targets.
0 of 9 completeQuality automation
Run formatting, linting, tests, and production builds through reproducible commands.
0 of 8 completePerformance and web safety
Measure bundle and runtime cost while keeping untrusted content out of executable contexts.
0 of 8 completeRelease and handoff
Ship with controlled configuration, dependency review, diagnostics, rollback, and documentation.
0 of 9 complete