JavaScript & TypeScript
Written for engineers who already know a backend language — the language core where your instincts are wrong, async and the event loop, the browser platform, and TypeScript from first annotation to typing an API boundary. Plus the tooling and testing a frontend job assumes you know.
Language Core
8 conceptsValues & Types — What JavaScript Actually Has
Equality & Coercion — == vs === and Why It Matters
Scope & Hoisting — let, const, var and the TDZ
Closures — Functions That Remember
`this` — Four Rules and an Arrow Function
Prototypes — How Inheritance Actually Works
Functions — Declarations, Expressions, Arrows, Defaults
Modules — import, export and the CommonJS Split
Working with Data
6 conceptsArrays — map, filter, reduce and the Rest
Objects — Keys, Spread and Immutable Updates
Destructuring & Spread — Pulling Data Apart
Strings — Templates, Methods and Unicode
Map & Set — When a Plain Object Is Not Enough
JSON — Serialising, Parsing and the Sharp Edges
Async
8 conceptsThe Event Loop — One Thread, No Blocking
Promises — States, Chaining and the Combinators
async / await — Promises That Read Like Sequential Code
fetch — Talking to Your API
Errors — Throwing, Catching and Custom Types
Timers, Debounce and Throttle
Async Patterns — Concurrency, Queues and Cancellation
Streaming and Real-Time — SSE, WebSockets and ReadableStream
The Browser
8 conceptsThe DOM — Selecting and Changing the Page
Events — Bubbling, Delegation and Cleanup
Forms — Inputs, Validation and Submission
Browser Storage — localStorage, Cookies and IndexedDB
History & URLs — Client-Side Routing Underneath
Observers — Intersection, Resize and Mutation
Useful Browser APIs
How the Browser Renders — and Why Your Page Janks
TypeScript
12 conceptsWhy TypeScript, and How It Runs
Basic Types, Inference and Annotations
Interfaces, Type Aliases and Structural Typing
Unions, Narrowing and Discriminated Unions
Generics
Utility Types
Advanced Types — Mapped, Conditional and Template Literal
Classes and OOP in TypeScript
TypeScript with React
Typing the API Boundary
Migrating and Living With TypeScript
TypeScript on the Server