JS Mastery
From console.log to Proxies, event loops and design patterns.
69 interactive topics across 7 worlds: runnable examples, live DOM previews, quizzes and coding challenges.
- Units
- 7
- Lessons
- 69
- Coding problems
- 69
- Visualizers
- 24
Free: units 1 to 2 (16 lessons). Units 3 to 7 with DevArcade Pro.
What you'll learn
- Basics BayValues, variables, operators, strings, decisions and loops: the grammar every other topic builds on.
- Function ForestReusable logic: declarations, arrows, scope, hoisting, closures, callbacks and recursion.
- Data DunesArrays, objects, destructuring, spread and rest, Map and Set, and JSON.
- Intermediate Islesthis, prototypes, classes, inheritance, errors, modules, iterators, generators and regular expressions.
- DOM JungleFind, change and create page elements, then react to clicks, keys and forms.
- Async ArchipelagoThe event loop, timers, callbacks, promises, async/await and fetching data.
- Advanced AbyssCurrying, memoization, debounce, Proxy, Symbols, WeakMap, patterns, immutability, FP and performance.
Course outline
7 units and 69 lessons. Each lesson has a short read with examples you run, a quiz, and coding problems tested in your browser; most have a step-through visualizer.
- Free
Unit 1:Basics Bay
Values, variables, operators, strings, decisions and loops: the grammar every other topic builds on.
- Hello, JavaScript What JS is, where it runs, and how to print with console.log.1 problem
- Variables: let, const, var Name values so you can reuse and change them.1 problem
- Data Types and typeof Strings, numbers, booleans, null, undefined, symbols, bigints and objects.1 problem
- Operators Arithmetic, comparison, logical, nullish and optional chaining.1 problem
- Type Coercion and Equality When JavaScript converts types on its own, the rules of ==, and why === is the default.1 problem
- Strings and Template Literals Build, slice, search and transform text.1 problem
- Numbers and Math Floating point, rounding, parsing, random numbers.1 problem
- Conditionals if/else, the ternary operator, switch, truthy and falsy.1 problem
- Loops for, while, do...while, for...of, for...in, break and continue.1 problem
-
- Free
Unit 2:Function Forest
Reusable logic: declarations, arrows, scope, hoisting, closures, callbacks and recursion.
- Functions Declarations, expressions, parameters, defaults and return values.1 problem
- Arrow Functions Short syntax, implicit returns and how arrows differ.1 problem
- Scope Global, function and block scope, plus the scope chain.1 problem
- Hoisting and the TDZ Why some things work before they are declared, and some do not.1 problem
- Closures Functions that remember the variables around them.1 problem
- Callbacks and Higher-Order Functions Passing functions in, returning functions out.1 problem
- Recursion Functions that call themselves to solve smaller problems.1 problem
-
- Pro
Unit 3:Data Dunes
Arrays, objects, destructuring, spread and rest, Map and Set, and JSON.
- Arrays Ordered lists: create, read, add, remove and copy.1 problem
- Array Methods: map, filter, reduce Transform, select, combine, search and sort data.1 problem
- Objects Key/value records: properties, methods, iteration and copying.1 problem
- Destructuring Unpack arrays and objects into variables in one line.1 problem
- Spread and Rest The three dots: expand values out or gather them in.1 problem
- Map and Set Keyed collections with any key type, and unique-value sets.1 problem
- JSON Turn data into text and back with JSON.stringify and JSON.parse.1 problem
- Dates, Times and Intl What a Date really stores, the month and time-zone traps, date arithmetic in UTC, and formatting with Intl.1 problem
-
- Pro
Unit 4:Intermediate Isles
this, prototypes, classes, inheritance, errors, modules, iterators, generators and regular expressions.
- The this Keyword How this is decided at call time, and call, apply and bind.1 problem
- Prototypes The prototype chain: how objects share behaviour.1 problem
- Classes Constructors, methods, getters and setters, static and private fields.1 problem
- Inheritance extends, super, overriding methods and instanceof.1 problem
- Getters, Setters and Property Descriptors Computed properties with get/set, the hidden flags on every property, and seal against freeze.1 problem
- Strict Mode, globalThis and Class Features What strict mode changes, the one name for the global object, private methods, static blocks, #x in obj and new.target.1 problem
- Error Handling try, catch, finally, throw and custom error types.1 problem
- Modules import and export, and the module pattern that came before.1 problem
- ES Modules in Depth Static imports, live bindings, one evaluation per module, cycles, dynamic import() and top-level await.1 problem
- Iterators and Generators The iteration protocol, function*, yield and lazy sequences.1 problem
- Regular Expressions Patterns for searching, validating and replacing text.1 problem
- Regex II: Lookaround, Named Groups, Flags Match what comes before or after without consuming it, name your groups, and use the s, u, y and d flags.1 problem
- Tagged Templates and String.raw A function in front of a template literal receives its pieces, so it can escape, translate or build anything.1 problem
-
- Pro
Unit 5:DOM Jungle
Find, change and create page elements, then react to clicks, keys and forms.
- Selecting Elements querySelector, querySelectorAll and walking the DOM tree.1 problem
- Changing the Page textContent, classList, attributes, styles, creating and removing nodes.1 problem
- Events addEventListener, the event object, keyboard input and preventDefault.1 problem
- Bubbling and Delegation How events travel, and handling many elements with one listener.1 problem
- Forms and Validation Read inputs, handle submit, validate and show feedback.1 problem
- Custom Events, Observers and Animation Frames Send your own events, react to DOM changes and visibility, and draw in step with the screen.1 problem
- Web Components and Shadow DOM Define your own HTML elements with custom elements, and encapsulate their markup and styles in a shadow root.1 problem
- Browser Storage: localStorage and IndexedDB Saving data in the browser: the Web Storage API, handling failures, IndexedDB for bigger data, and what never to store.1 problem
- Web Security Basics: XSS and Friends Why untrusted text must never become code: safe DOM APIs, escaping, URL allow-lists, CSP and prototype pollution.1 problem
-
- Pro
Unit 6:Async Archipelago
The event loop, timers, callbacks, promises, async/await and fetching data.
- The Event Loop Call stack, task queue, microtasks: why async code runs when it does.1 problem
- Timers and Async Callbacks setTimeout, setInterval, error-first callbacks and callback hell.1 problem
- Promises Creating, resolving, chaining and catching promises.1 problem
- Promise.all, race, any, allSettled Run async work in parallel and combine the results.1 problem
- async / await Write promise code that reads like synchronous code.1 problem
- Async Iterators and Generators Pull values that arrive over time with for await...of, and produce them with async function*.1 problem
- Fetching Data The fetch API, JSON responses, errors, loading states and AbortController.1 problem
- HTTP, URLs and CORS What a request and response contain, status codes, building URLs safely, JSON requests, and why CORS exists.1 problem
- Web Workers and Message Passing Run heavy work on another thread, and talk to it with structured-cloned messages.1 problem
-
- Pro
Unit 7:Advanced Abyss
Currying, memoization, debounce, Proxy, Symbols, WeakMap, patterns, immutability, FP and performance.
- Currying and Partial Application Turn f(a, b, c) into f(a)(b)(c) and pre-fill arguments.1 problem
- Memoization Cache function results to skip repeated work.1 problem
- Debounce and Throttle Control how often a function runs during bursts of events.1 problem
- Proxy and Reflect Intercept property access, assignment and more.1 problem
- Symbols Unique keys, hidden properties and well-known symbols.1 problem
- Memory and Garbage Collection What keeps a value alive, how mark-and-sweep frees the rest, the usual leaks, and how to avoid them.1 problem
- WeakMap, WeakSet and WeakRef Attach data to objects without keeping them alive.1 problem
- Binary Data: Bitwise Flags, Typed Arrays, DataView Pack options into bits, read and write raw bytes with typed arrays, and parse binary formats with DataView.1 problem
- Design Patterns Singleton, factory, observer and strategy in modern JavaScript.1 problem
- Immutability Update data without changing it: freeze, copies, structuredClone.1 problem
- Functional Programming Pure functions, composition, pipe and point-free style.1 problem
- Performance Big-O thinking, measuring, and avoiding needless work.1 problem
- Testing Basics: Build a Tiny Test Runner What a unit test is, how assertions and runners work, and how to write tests that catch real bugs.1 problem
- Modern JavaScript: ES2020 to ES2025 The recent additions worth knowing: logical assignment, groupBy, findLast, withResolvers, error causes, Set methods and more.1 problem
-
Start JS Mastery for free
Enroll for free and units 1 and 2 are yours. DevArcade Pro opens every unit of every course, including new ones as they launch, monthly or yearly.