A practical guide to regex in JavaScript — literal vs constructor syntax, character classes, quantifiers, anchors, groups and alternation, flags, the string methods (test, match, matchAll, replace, split), capture and named groups, lookahead/lookbehind, and common pitfalls — with hands-on exercises and solutions.
A practical guide to handling errors and debugging in JavaScript — try/catch/finally, the Error object and custom error classes, throwing well, async error handling, global handlers, and a working DevTools debugging toolkit (breakpoints, the call stack, console methods, source maps) — with hands-on exercises and solutions.
A deeper guide to JavaScript's execution model — lexical scope and the scope chain, hoisting and the temporal dead zone, closures and the patterns they enable (private state, factories, memoization), the four rules of this, call/apply/bind, and arrow functions — with hands-on exercises and solutions.
A practical guide to functional programming in JavaScript — pure functions and side effects, immutability and how to update data without mutation, first-class and higher-order functions, map/filter/reduce, composition and currying, and why this style underpins React — with hands-on exercises and solutions.
A practical guide to storing data in the browser — localStorage and sessionStorage, cookies and their flags, when to use each, IndexedDB for larger structured data, the Cache API, security and size limits, and patterns for persisting app state — with hands-on exercises and solutions.
A practical guide to making JavaScript fast — the single-threaded model and avoiding main-thread blocking, debounce and throttle, memoization, efficient DOM updates and batching, memory leaks and how they happen, garbage collection, WeakMap/WeakSet, and measuring with DevTools — with hands-on exercises and solutions.
A practical guide to JavaScript's iteration protocol — what makes something iterable, the iterator protocol, for...of and the spread operator, writing generator functions with function* and yield, lazy and infinite sequences, generator delegation, and async iterators — with hands-on exercises and solutions.
A practical guide to TypeScript — why static types matter, basic and inferred types, interfaces and type aliases, unions and literals, generics, optional and readonly, narrowing, typing functions and async, and how it integrates into a real project — with hands-on exercises and solutions.
A practical guide to testing JavaScript — why tests matter, unit vs integration vs end-to-end, the arrange-act-assert structure, writing tests with Vitest, assertions and matchers, mocking, testing async code, what to test (and what not to), and test-driven development — with hands-on exercises and solutions.