Skip to content

Books — the JavaScript and TypeScript shelf, chapter by chapter

Level: 101 · for choosing what to read beside a page

One line: Thirty books and the ES5 standard, each mapped by chapter name to the pages here that cover the same ground; the older ones say what has changed since they were written.

These are the JavaScript and TypeScript books on the shelf beside this library, each mapped to the chapters here that cover the same ground. The mappings were made from each book's own table of contents. A lesson cites a book by title and chapter name, for example Eloquent JavaScript, ch. 11 Asynchronous Programming, because chapter numbers move between editions; the numbers on this page belong to the edition named in each entry. Each entry gives the publisher, the year the edition was first released (the copyright year when the book gives no release date), and the edition where the book states one, then one sentence on what the book is best for. Books about frameworks, services and other languages outside this library are listed at the end, by title and author only. Checked 2026-09-22.

JavaScript, the language

JavaScript: The Definitive Guide: Master the World's Most-Used Programming Language — David Flanagan (O'Reilly, 2020, 7th edition). Best for checking how any part of the language or its standard library behaves: it takes ES5 as the baseline, covers everything through ES2020, and ends with chapters on browsers, Node and tools.

JavaScript: The New Toys — T.J. Crowder (Wrox, 2020). Best for learning what ES2015 through ES2020 added, one feature at a time; chapters 2 to 18 each end with a section on the old habits the new feature replaces.

Eloquent JavaScript: A Modern Introduction to Programming — Marijn Haverbeke (No Starch Press, 2019, 3rd edition). Best for a first pass through the language as a programmer learns it, with exercises at the end of most chapters and five project chapters (7, 12, 16, 19 and 21, not mapped here).

JavaScript: The Comprehensive Guide — Philip Ackermann (Rheinwerk Publishing, 2022, 1st edition). Best for a long, broad tutorial that runs from language basics through the DOM, web APIs, object-oriented and functional style to a chapter on Node; it is translated from the third German edition.

Advanced JavaScript Unleashed: Master Advanced JavaScript Concepts like Prototypes, Symbols, Generators and More — Yousaf Khan, edited by Zao Yang (Fullstack.io, 2024). Best for the parts of the language people most often get wrong — hoisting, coercion, closures, this, promises — taken one mechanism at a time. Its chapters are not numbered.

Simplifying JavaScript: Writing Modern JavaScript with ES5, ES6, and Beyond — Joe Morgan (Pragmatic Bookshelf, 2018, version P1.0). Best for replacing older idioms with ES2015 and later ones, in 51 short numbered tips.

Structure and Interpretation of Computer Programs: JavaScript Edition — Harold Abelson and Gerald Jay Sussman, adapted to JavaScript by Martin Henz and Tobias Wrigstad, with Julie Sussman (MIT Press, 2022, JavaScript edition). Best for the ideas underneath any language — functions as values, environments, state, streams, evaluators; it uses only a small part of JavaScript and warns readers not to learn the language from it.

TypeScript

Learning TypeScript: Enhance Your Web Development Skills Using Type-Safe JavaScript — Josh Goldberg (O'Reilly, 2022, 1st edition, third early release). Best for learning the type system in the order it builds on itself, from unions and narrowing to declaration files and tsconfig. This early release, of January 2022, has eleven chapters and none yet on generics; the finished book may number its chapters differently, so cite them by name.

TypeScript for Beginners: The Ultimate Guide — Sufyan bin Uzayr (CRC Press, 2022, 1st edition). Best for a quick survey of TypeScript's features up to version 4.2, including namespaces and declaration merging.

TypeScript Design Patterns: Boost your development efficiency by learning about design patterns in TypeScript — Vilic Vane (Packt, 2016). Best for the classic object-oriented design patterns written out in TypeScript. Written in 2016 (it mentions TypeScript 2.1 and Node.js 6), it installs declaration files with the typings tool, which @types packages have since replaced.

Advanced TypeScript Programming Projects: Build 9 different apps with TypeScript 3 and JavaScript frameworks such as Angular, React, and Vue — Peter O'Hanlon (Packt, 2019). Best for its first chapter, a tour of TypeScript 3 features and tsconfig; the other nine chapters are projects, most of them built on Angular, React, Vue.js or ASP.NET Core, and fall outside this library.

Node.js

Node.js: The Comprehensive Guide — Sebastian Springer (Rheinwerk Publishing, 2022, 1st edition). Best for a wide survey of Node — modules, HTTP, the command line, child processes and workers, streams, files, npm, testing — alongside the Express and Nest frameworks; it is translated from the fourth German edition.

Distributed Systems with Node.js: Building Enterprise-Ready Backend Services — Thomas Hunter II (O'Reilly, 2020, 1st edition). Best for running Node services in production; its first chapter explains the phases of the Node event loop, and most later chapters cover the infrastructure around Node rather than Node itself.

Node.js 8 the Right Way: Practical, Server-Side JavaScript That Scales — Jim R. Wilson (Pragmatic Bookshelf, 2018, version P1.0). Best for learning Node by building small programs — file-system tools, socket servers, ØMQ microservices, a REST service — written for Node 8.

Fullstack Node.js: The Complete Guide to Building Production Apps with Node.js — David Guttman, edited by Nate Murray (Fullstack.io, 2019, prerelease revision 2). Best for its Async chapter, which sets callbacks, promises, async/await, event emitters and streams side by side; the later chapters build an Express API. Its chapters are not numbered.

Text, JSON and regular expressions

Text Processing with JavaScript: Regular Expressions, Tools, and Techniques for Optimal Performance — Faraz K. Kelhini (Pragmatic Bookshelf, 2023, version P1.0). Best for current, recipe-sized answers to text questions — Intl.Segmenter, normalize, Intl formatting and the d, s, u and y regex flags — in 73 numbered recipes across three parts.

JavaScript RegExp — Sundeep Agarwal (self-published, 2019, version 1.0). Best for short example-first chapters with exercises, all run in the Chrome console. Its chapters are not numbered.

Introducing Regular Expressions: JavaScript and TypeScript — Jörg Krause (Apress, 2017). Best for a short introduction plus a chapter of ready-made patterns for the web and networking, data manipulation and form validation. It was written before ES2018 and says JavaScript has no lookbehind, which ES2018 added.

Introduction to JavaScript Object Notation: A To-the-Point Guide to JSON — Lindsay Bassett (O'Reilly, 2015, 1st edition). Best for JSON as a data format on its own terms: syntax, data types, JSON Schema, and why JSON.parse replaced eval for reading it.

Asynchrony and concurrency

Multithreaded JavaScript: Concurrency Beyond the Event Loop — Thomas Hunter II and Bryan English (O'Reilly, 2021, 1st edition). Best for threads in JavaScript — web workers, worker_threads, SharedArrayBuffer and Atomics — and for its closing chapter on when they are not worth the cost.

The asynchronous chapters of books listed elsewhere on this page, all mapped to Async and the event loop:

  • Eloquent JavaScript, ch. 11 Asynchronous Programming
  • JavaScript: The Definitive Guide, ch. 13 Asynchronous JavaScript
  • JavaScript: The New Toys, ch. 8 Promises and ch. 9 Asynchronous Functions, Iterators, and Generators; ch. 16 Shared Memory goes with Workers and parallelism
  • Advanced JavaScript Unleashed, Asynchronous JavaScript
  • Distributed Systems with Node.js, ch. 1 Why Distributed?, for the Node event loop
  • Node.js: The Comprehensive Guide, ch. 16 Asynchronous Programming
  • Fullstack Node.js, Async
  • Async JavaScript, the whole book, listed under older books below

Older books, read with care

These predate ES2015 or teach what it replaced. Their chapters still map onto this library, but each entry says in one sentence what has changed since.

JavaScript: The Good Parts — Douglas Crockford (O'Reilly, 2008, 1st edition). Best for its lists of the language's traps in appendices A Awful Parts and B Bad Parts, many of which still apply. Written for ES3, it works around the lack of block scope, classes and modules with functions, closures and prototype helpers; ES2015 added let, const, class and modules.

Professional JavaScript for Web Developers — Nicholas C. Zakas (Wrox, 2012, 3rd edition). Best for ES5 and the browser APIs of 2012, covered in detail. Its object-oriented chapter builds inheritance from constructors and prototypes that class now writes for you, ch. 7 imitates block scope with immediately invoked functions that let made unnecessary, and appendix A describes ES2015, then called Harmony, before it was finished.

Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications, and libraries — Stoyan Stefanov (Packt, 2008). Best for a patient walk through functions, closures and prototypes as ES3 had them. Its hand-written inheritance helpers, including an object() function, became Object.create in ES5 and class with extends in ES2015.

Learning JavaScript Design Patterns — Addy Osmani (O'Reilly, 2012, early release revision 1). Best for the classic patterns as JavaScript wrote them around 2012, and for the module formats that came before ES modules. The module and constructor patterns it teaches are what ES modules and class now provide directly, and its section on ES Harmony modules shows 2012 proposal syntax (module blocks, import * from) that ES2015 did not adopt.

  • ch. 9 JavaScript Design Patterns → new, Closures (the module pattern), EventEmitter (the observer pattern)
  • ch. 13 Modern Modular JavaScript Design Patterns → ES modules and CommonJS
  • Not mapped: chs. 11, 12 and 14 (MV* patterns, jQuery, jQuery plugins).

Head First JavaScript — Michael Morrison (O'Reilly, 2007, 1st edition). Best for a picture-heavy beginner's course in browser scripting. It is 2007 browser JavaScript: written before let, const and class, it builds custom objects on prototypes by hand and does Ajax with XMLHttpRequest, where fetch and promises are used now.

  • ch. 2 storing data: Everything Has Its Place → Values and types, Variables and scope
  • ch. 3 exploring the client: Browser Spelunking → Storage, Timers
  • chs. 4–5 decision making: If There's a Fork in the Road, Take It, looping: At the Risk of Repeating Myself → Control flow and iteration
  • ch. 6 functions: Reduce, Reuse, Recycle → Functions
  • ch. 7 forms and validation: Getting the User to Tell All → Regular expressions
  • ch. 8 wrangling the page: Slicing and Dicing HTML with the DOM → The DOM
  • ch. 9 bringing data to life: Objects as Frankendata → Objects
  • ch. 10 creating custom objects: Having It Your Way with Custom Objects → Prototypes and classes
  • ch. 11 kill bugs dead: Good Scripts Gone Wrong → Errors
  • ch. 12 dynamic data: Touchy-Feely Web Applications → fetch and CORS

JavaScript Step by Step — Steve Suehring (Microsoft Press, 2013, 3rd edition). Best for exercises on ES5 basics in the browser. It predates let, const, class, modules and promises, works in Visual Studio 2012, and spends several chapters on jQuery and Windows 8 apps.

Learning JavaScript: A Hands-On Guide to the Fundamentals of Modern JavaScript — Tim Wright (Addison-Wesley, 2012). Best for browser scripting in the progressive-enhancement style. Its "modern" is 2012: written before ES2015, it has no let, const, class, modules, promises or fetch, and it leans on jQuery.

Async JavaScript: Build More Responsive Apps with Less Code — Trevor Burnham (Pragmatic Bookshelf, 2012, version P1.0). Best for why callbacks nest and how the event queue runs, explained before promises were part of the language. Its promises are jQuery Deferreds and Promises/A and its flow control uses the Async.js library; ES2015 standardized Promise and ES2017 added async and await.

Node.js in Action — Mike Cantelon, Marc Harter, T.J. Holowaychuk and Nathan Rajlich (Manning, 2014). Best for Node's core model — asynchronous I/O, CommonJS modules, callbacks, event emitters — as it looked in 2014. Its code uses callbacks throughout, because it was written before promises, async/await and ES modules reached Node.

Node.js in Practice — Alex Young and Marc Harter (Manning, 2015). Best for its 115 numbered techniques on Node's core modules: buffers, events, streams, the file system, networking and child processes. It was written for Node 0.10, whose APIs took callbacks, and it creates buffers with new Buffer(), which Node has since deprecated in favour of Buffer.from.

  • ch. 1 Getting started → The Node.js runtime
  • ch. 2 Globals: Node's environment → process, Timers, Modules
  • ch. 3 Buffers: Working with bits, bytes, and encodings → Buffer, Strings and bytes
  • ch. 4 Events: Mastering EventEmitter and beyond → EventEmitter
  • ch. 5 Streams: Node's most powerful and misunderstood feature → Streams
  • ch. 6 File system: Synchronous and asynchronous approaches to files → Files
  • ch. 7 Networking: Node's true "Hello, World" → HTTP
  • ch. 8 Child processes: Integrating external applications with Node → Child processes
  • ch. 10 Tests: The key to confident code → The built-in test runner
  • ch. 11 Debugging: Designing for introspection and resolving issues → Debugging Node, Memory leaks
  • ch. 13 Writing modules: Mastering what Node is all about → package.json, npm
  • Not mapped: ch. 9 (web applications) and ch. 12 (production).

ECMAScript Language Specification (ECMA-262) — Ecma International (2009, 5th edition). Best for reading the language as ES5 defined it — strict mode, the JSON object, property attributes — beside the current edition listed on the documentation page. It was followed by edition 5.1 in 2011 and, from ES2015 on, by a new edition every year; the current one is the 17th, ECMAScript 2026.

Beyond this library

Books on frameworks, libraries, cloud services and other languages, which this library does not cover:

  • Angular in Action — Jeremy Wilken
  • AWS Lambda in Action — Danilo Poccia
  • Clojure Programming — Chas Emerick, Brian Carper and Christophe Grand
  • Full Stack JavaScript — Azat Mardan
  • Fullstack React — Anthony Accomazzo, Ari Lerner, Nate Murray, Clay Allsopp, David Guttman and Tyler McGinnis
  • JavaScript Everywhere — Adam D. Scott
  • Learning GraphQL — Eve Porcello and Alex Banks
  • Learning React — Alex Banks and Eve Porcello
  • Learning React Native — Bonnie Eisenman
  • React Hooks in Action — John Larsen
  • RxJS in Action — Paul P. Daniels and Luis Atencio
  • Serverless Applications with Node.js — Slobodan Stojanović and Aleksandar Simović
  • Web Development with Node and Express — Ethan Brown