JavaScript and TypeScript
Learn runtime behavior and language fundamentals in plain English, with visual tools you can play with.
Section
JavaScript Fundamentals
Runtime behavior and core language concepts: event loop, scope, closures, prototypes, and async execution.
1 page
Section
TypeScript Fundamentals
Master the type system from the ground up: generics, constraints, and building blocks for type safety.
1 page
Section
Advanced TypeScript
Expert patterns: utility types, conditional types, infer, template literals, and mapped types.
1 page
Section
Deep Dives
Advanced mechanics: symbols, proxies, weak references, generators, iterators, and metaprogramming.
9 pages
Prototype Chain and Inheritance
How JavaScript objects inherit from each other through the prototype chain and what class syntax actually compiles to.
Closures and Lexical Scope
How functions capture variables from their surrounding scope plus practical patterns like memoisation and private state.
The this Keyword
The four binding rules that determine what this refers to, and how arrow functions opt out of the system entirely.
Generators and Iterators
The iterator protocol, generator functions, lazy infinite sequences, and two-way communication with yield.
Proxies and the Reflect API
Intercept get, set, delete, and more on any object the metaprogramming API that powers Vue 3 reactivity.
WeakMap, WeakSet, and WeakRef
Hold references to objects without preventing garbage collection avoid memory leaks in caches and event listeners.
Symbols and Well-Known Symbols
Guaranteed-unique primitive values as collision-free property keys and well-known symbols that hook into language behaviour.
Async Iterators and for-await-of
Consume streams, paginated APIs, and async sequences with clean loop syntax using async generators and for-await-of.
Tagged Template Literals
Intercept template literal interpolation the technique behind styled-components, SQL escaping, and i18n libraries.