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.
- ch. 1 Introduction to JavaScript → Running JavaScript
- ch. 2 Lexical Structure → Automatic semicolon insertion, Normalization
- ch. 3 Types, Values, and Variables → Values and types, Equality and coercion, Variables and scope, Numbers and math
- ch. 4 Expressions and Operators → Equality and coercion,
?.and??, Bitwise operators - ch. 5 Statements → Control flow and iteration, Strict mode
- ch. 6 Objects → Objects
- ch. 7 Arrays → Arrays and collections, Holes
- ch. 8 Functions → Functions, Closures
- ch. 9 Classes → Prototypes and classes
- ch. 10 Modules → Modules
- ch. 11 The JavaScript Standard Library →
MapandSet, Typed arrays andArrayBuffer, Regular expressions, Dates and time, Errors, JSON, Timers - ch. 12 Iterators and Generators → The iteration protocol, Generators
- ch. 13 Asynchronous JavaScript → Async and the event loop, Async iteration
- ch. 14 Metaprogramming → Property descriptors, Metaprogramming
- ch. 15 JavaScript in Web Browsers → The browser, Workers and parallelism
- ch. 16 Server-Side JavaScript with Node → The Node.js runtime, Child processes, Worker threads
- ch. 17 JavaScript Tools and Extensions → Tooling
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.
- ch. 1 The New Toys in ES2015–ES2020, and Beyond → ECMAScript versions
- ch. 2 Block-Scoped Declarations: let and const →
var,letandconst, Hoisting and the temporal dead zone,constis not frozen, Closures in loops - ch. 3 New Function Features → Arrow functions, Parameters
- ch. 4 Classes → Prototypes and classes
- ch. 5 New Object Features → Object literals, Symbols, Property keys,
Object.is,NaNand-0 - ch. 6 Iterables, Iterators, for-of, Iterable Spread, Generators → The iteration protocol, Generators
- ch. 7 Destructuring → Destructuring
- ch. 8 Promises → Promises,
all,allSettled,raceandany - ch. 9 Asynchronous Functions, Iterators, and Generators →
asyncandawait, Async iteration - ch. 10 Templates, Tag Functions, and New String Features → Template literals, Tagged templates, Code points, Normalization
- ch. 11 New Array Features, Typed Arrays → Arrays and collections, Typed arrays and
ArrayBuffer - ch. 12 Maps and Sets →
MapandSet,WeakMapandWeakSet - ch. 13 Modules → Modules
- ch. 14 Reflection—Reflect and Proxy →
ProxyandReflect - ch. 15 Regular Expression Updates → Regular expressions
- ch. 16 Shared Memory →
SharedArrayBufferandAtomics - ch. 17 Miscellany → BigInt, Safe integers,
?.and??, The global object - ch. 18 Upcoming Class Features → Private fields, Static members and static blocks
- ch. 19 A Look Ahead … → Dynamic
import()and top-levelawait,WeakRefandFinalizationRegistry
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).
- ch. 1 Values, Types, and Operators → Values and types, Equality and coercion
- ch. 2 Program Structure → Variables and scope, Control flow and iteration
- ch. 3 Functions → Functions, Closures, Recursion and the call stack
- ch. 4 Data Structures: Objects and Arrays → Objects, Arrays and collections, Destructuring, JSON
- ch. 5 Higher-Order Functions → Higher-order functions,
map,filter,reduceand friends, Strings are UTF-16 - ch. 6 The Secret Life of Objects → Prototypes and classes, Symbols, The iteration protocol, Getters and setters
- ch. 8 Bugs and Errors → Errors, Strict mode
- ch. 9 Regular Expressions → Regular expressions, The
gflag andlastIndex - ch. 10 Modules → Modules
- ch. 11 Asynchronous Programming → Async and the event loop
- chs. 13–15 JavaScript and the Browser, The Document Object Model, Handling Events → The browser
- ch. 18 HTTP and Forms →
fetchand CORS, Storage - ch. 20 Node.js → The Node.js runtime
- ch. 22 JavaScript and Performance → Memory and garbage collection
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.
- ch. 1 Basics and Introduction → Running JavaScript
- ch. 2 Getting Started → Loading scripts
- ch. 3 Language Core → Values and types, Variables and scope, Functions, Control flow and iteration, Errors
- ch. 4 Working with Reference Types → Values and references, Objects, Arrays and collections, Strings and Unicode, Regular expressions
- chs. 5–9 Dynamically Changing Web Pages to Dynamically Reloading Contents of a Web Page → The browser, JSON
- ch. 12 Using Modern Web APIs → Storage, Workers and parallelism
- ch. 13 Object-Oriented Programming → Prototypes and classes
- ch. 14 Functional Programming → Higher-order functions
- ch. 15 Correctly Structuring the Source Code → Modules
- ch. 16 Using Asynchronous Programming and Other Advanced Features → Async and the event loop, Generators,
ProxyandReflect - ch. 17 Creating Server-Based Applications with Node.js → The Node.js runtime, npm
- ch. 21 Establishing a Professional Development Process → Tooling
- Not mapped: ch. 10 (jQuery), ch. 11 (images and graphics), chs. 18–20 (mobile, desktop and microcontroller applications).
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.
- What is JavaScript → ECMAScript versions, Recursion and the call stack
- Hoisting → Hoisting and the temporal dead zone
- Scope → Variables and scope
- Coercion → Equality and coercion, ToPrimitive
- Closures → Closures, Closures in loops
- Prototypes → The prototype chain
- 'this' keyword →
this, Arrow functions - Symbol → Symbols, Well-known symbols
- Asynchronous JavaScript → Async and the event loop
- Iterators and Generators → The iteration protocol, Generators, Async iteration
- Debugging JavaScript → Debugging Node (the book uses the browser's developer tools)
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.
- ch. 1 Signal Intention with Variable Assignment →
var,letandconst, Template literals - ch. 2 Manage Data Collections with Arrays → Mutating and copying methods
- ch. 3 Maximize Code Clarity with Special Collections → Copying objects,
MapandSet - ch. 4 Write Clear Conditionals → Truthy and falsy, Short-circuit evaluation
- ch. 5 Simplify Loops →
map,filter,reduceand friends,for...inandfor...of - ch. 6 Clean Up Parameters and Return Statements → Parameters, Destructuring
- ch. 7 Build Flexible Functions → Higher-order functions, Arrow functions
- ch. 8 Keep Interfaces Clear with Classes → Prototypes and classes, Getters and setters, Generators,
call,applyandbind - ch. 9 Access External Data → Promises,
asyncandawait,fetchand CORS, Storage - ch. 10 Gather Related Files with Component Architecture →
importandexport, npm, Bundlers and transpilers
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.
- ch. 1 Building Abstractions with Functions → Higher-order functions, Recursion and the call stack
- ch. 3 Modularity, Objects, and State (its sections on local state, concurrency and streams) → Closures,
SharedArrayBufferandAtomics, Iterator helpers - ch. 5 Computing with Register Machines (its section on storage allocation and garbage collection) → Memory and garbage collection
- Not mapped: ch. 2 Building Abstractions with Data and ch. 4 Metalinguistic Abstraction.
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.
- ch. 1 From JavaScript to TypeScript → TypeScript basics
- ch. 2 The Type System → Annotations and inference, Structural typing
- ch. 3 Unions and Narrowing → Union and intersection types, Narrowing
- ch. 4 Literals → Primitive and literal types,
strictNullChecks, Truthiness narrowing - ch. 5 Functions → Function types
- ch. 6 Arrays → Arrays and tuples
- ch. 7 Objects and Interfaces → Object types, Type aliases and interfaces, Type compatibility
- ch. 8 Classes → Classes in TypeScript
- ch. 9 Type Modifiers →
any,unknownandnever, Type predicates,keyofandtypeofin types, Type assertions - ch. 10 Declaration Files → Declaration files and module resolution
- ch. 11 Configuration Options →
tscandtsconfig.json, Module resolution
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.
- ch. 1 TypeScript: Introduction to TypeScript → TypeScript basics, Everyday types, Discriminated unions
- ch. 2 Key Concepts of TS → Classes in TypeScript, Function types, Type compatibility, Generics, Enums
- ch. 3 Modules and Namespaces → Modules, Module resolution
- ch. 4 TS Runtime → Running TypeScript, Deno and Bun, Declaration merging
- Not mapped: ch. 5 TypeScript Architecture (MVC frameworks) and ch. 6 Appraisal.
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.
- ch. 1 Tools and Frameworks → Editor setup,
tscandtsconfig.json - chs. 3–6 Creational Design Patterns, Structural Design Patterns, Behavioral Design Patterns, Behavioral Design Patterns: Continuous → Classes in TypeScript, The iteration protocol (the iterator pattern),
EventEmitter(the observer pattern) - ch. 7 Patterns and Architectures in JavaScript and TypeScript → Promises, Modules
- ch. 8 SOLID Principles →
abstractandimplements - ch. 9 The Road to Enterprise Application → Tooling
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.
- ch. 1 Advanced TypeScript Features →
tscandtsconfig.json, Union and intersection types, Type aliases and interfaces, Decorators, Generics
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.
- chs. 1–2 Basic Principles, Installation → Which features your Node has
- ch. 3 Developing Your First Application → Running a file with Node, Debugging Node
- ch. 4 Node.js Modules → Modules
- ch. 5 HTTP → HTTP
- ch. 13 Type-Safe Applications in Node.js → TypeScript basics, Generics
- ch. 15 Node on the Command Line →
process, stdin, stdout and pipes - ch. 16 Asynchronous Programming → Async and the event loop, Child processes, Worker threads
- ch. 18 Streams → Streams
- ch. 19 Working with Files → Files
- ch. 21 Package Manager → npm
- ch. 22 Quality Assurance → ESLint, Prettier
- ch. 23 Testing → The built-in test runner (the book uses
assert, Jasmine and Jest) - ch. 26 Performance → Measuring memory
- ch. 28 Deno → Deno and Bun
- Not mapped: chs. 6–12, 14, 17, 20, 24, 25 and 27 (Express, template engines, databases, authentication, REST, GraphQL, real-time applications, Nest, RxJS, sockets, security, deployment and microservices).
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.
- ch. 1 Why Distributed? → The event loop, One thread per agent
- ch. 2 Protocols → HTTP, JSON
- ch. 3 Scaling → Workers and parallelism (the cluster module)
- ch. 6 Deployments → npm (modules, packages and SemVer)
- ch. 8 Resilience → Unhandled errors,
process - Not mapped: chs. 4, 5, 7, 9 and 10 (observability, containers, Kubernetes, Redis, security).
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.
- ch. 1 Getting Started → Running a file with Node
- ch. 2 Wrangling the File System → The event loop, Files,
EventEmitter, Child processes - ch. 3 Networking with Sockets → The Node.js runtime
- ch. 4 Connecting Robust Microservices → Workers and parallelism (clustering Node processes)
- ch. 5 Transforming Data and Testing Continuously → Debugging Node
- ch. 6 Commanding Databases →
process, JSON - ch. 7 Developing RESTful Web Services → Promises,
asyncandawait - ch. 8 Creating a Beautiful User Experience → Bundlers and transpilers, TypeScript basics
- Not mapped: ch. 9 Fortifying Your Application and the bonus chapter on Node-RED.
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.
- Your First Node API → HTTP
- Async → Callbacks, Promises,
asyncandawait,EventEmitter, Streams - Command Line Interfaces →
process - Not mapped: the four A Complete Server chapters (routing, persistence, authentication, deployment).
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.
- Part I Text Processing with Built-in JavaScript Methods → String methods, Graphemes, Normalization, Rounding and formatting, Formatting dates
- Part II Text Processing with Regular Expressions → Regex literals and flags, Named groups and replacements, Lookbehind, Unicode mode
- Part III Mastering Text Processing in JavaScript →
RegExp.escape(Recipe 66 escapes by hand; ES2025 added the built-in) - app. A1 What Is Unicode? → Strings are UTF-16
- app. A2 Implementing Regex in JavaScript →
match,matchAllandexec
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.
- RegExp introduction → Regex literals and flags
- Anchors, Alternation and Grouping, Dot metacharacter and Quantifiers, Character class → Regular expressions
- Escaping metacharacters →
RegExp.escape - Working with matched portions →
match,matchAllandexec, Named groups and replacements - Groupings and backreferences → Named groups and replacements
- Lookarounds → Lookbehind
- Unicode → Unicode mode
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.
- ch. 1 Introducing Regular Expressions, ch. 2 Recognizing Patterns → Regular expressions, Lookbehind
- ch. 3 The JavaScript Functions →
match,matchAllandexec - ch. 4 Examples of Patterns → Regular expressions
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.
- ch. 1 What Is JSON?, ch. 2 JSON Syntax, ch. 3 JSON Data Types → JSON, Recursive types
- ch. 4 JSON Schema → Run-time validation
- ch. 5 JSON Security Concerns →
evalandnew Function, External data - ch. 6 The JavaScript XmlHttpRequest and Web APIs →
fetchand CORS - Not mapped: ch. 7 (jQuery and AngularJS), ch. 8 (CouchDB), ch. 9 JSON on the Server Side.
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.
- ch. 1 Introduction → One thread per agent, Run to completion
- ch. 2 Browsers → The browser,
postMessage - ch. 3 Node.js → Worker threads
- ch. 4 Shared Memory →
SharedArrayBufferandAtomics, Typed arrays andArrayBuffer - ch. 5 Advanced Shared Memory →
SharedArrayBufferandAtomics - chs. 6 and 8 Multithreaded Patterns, Analysis → Workers and parallelism
- app. A Structured Clone Algorithm →
postMessage, Copying objects - Not mapped: ch. 7 WebAssembly.
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.
- ch. 2 Grammar → Values and types
- ch. 3 Objects → Objects
- ch. 4 Functions → Functions,
this, Closures - ch. 5 Inheritance → Prototypes and classes
- ch. 6 Arrays → Arrays and collections
- ch. 7 Regular Expressions → Regular expressions
- ch. 8 Methods → Arrays and collections, String methods
- app. A Awful Parts → Automatic semicolon insertion,
typeof, The+operator, Parsing numbers, Every number is a double,NaN,Infinityand-0, Truthy and falsy - app. B Bad Parts →
===and==,evalandnew Function, Bitwise operators, Primitives and wrappers,new - app. C JSLint → ESLint
- app. E JSON → JSON
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.
- ch. 1 What Is JavaScript? → The language and the host, ECMAScript versions
- ch. 2 JavaScript in HTML → Loading scripts
- ch. 3 Language Basics → Values and types, Equality and coercion, Control flow and iteration
- ch. 4 Variables, Scope, and Memory → Values and references, Variables and scope, Memory and garbage collection
- ch. 5 Reference Types → Objects, Arrays and collections, Dates and time, Regular expressions, Primitives and wrappers
- ch. 6 Object-Oriented Programming → Property descriptors, Prototypes and classes
- ch. 7 Function Expressions → Closures, Recursion and the call stack
- chs. 8–16, from The Browser Object Model to HTML5 Scripting → The browser
- ch. 17 Error Handling and Debugging → Errors
- ch. 20 JSON → JSON
- ch. 21 Ajax and Comet →
fetchand CORS - ch. 22 Advanced Techniques →
freeze,sealandpreventExtensions, Timers - ch. 23 Offline Applications and Client-Side Storage → Storage
- ch. 25 Emerging APIs → The rendering loop, Workers and parallelism
- app. A ECMAScript Harmony → ECMAScript versions
- app. B Strict Mode → Strict mode
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.
- ch. 2 Primitive Data Types, Arrays, Loops, and Conditions → Values and types, Control flow and iteration
- ch. 3 Functions → Functions, Closures
- ch. 4 Objects → Objects
- ch. 5 Prototype → The prototype chain
- ch. 6 Inheritance →
extendsandsuper, Copying objects - ch. 7 The Browser Environment → The browser
- app. D Regular Expressions → Regular expressions
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 →
fetchand 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.
- ch. 1 JavaScript is more than you might think → The language and the host
- ch. 3 JavaScript syntax and statements → Strict mode
- ch. 4 Working with variables and data types → Values and types, Converting on purpose, Regular expressions
- ch. 5 Using operators and expressions → Equality and coercion
- ch. 6 Controlling flow with conditionals and loops → Control flow and iteration
- ch. 7 Working with functions → Functions
- ch. 8 Objects in JavaScript → Objects, Arrays and collections
- chs. 9, 12 and 13 The Browser Object Model, The Document Object Model, JavaScript events and the browser → The browser
- chs. 19–20 Getting data into JavaScript, Using AJAX →
fetchand CORS - Not mapped: chs. 10–11 and 17–18 (jQuery), chs. 14–16 (images, forms, CSS), chs. 21–23 (Windows 8).
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.
- ch. 2 JavaScript in the Browser → The browser
- ch. 4 Accessing the DOM → The DOM
- ch. 5 Storing Data in JavaScript → Arrays and collections, JSON, Storage
- ch. 6 Variables, Functions, and Loops → Variables and scope, Functions, Control flow and iteration
- ch. 7 Interacting with the User Through Events → DOM events
- ch. 8 Communicating with the Server Through Ajax →
fetchand CORS - Not mapped: chs. 1, 3 and 9–12 (progressive enhancement, terminology, code organization, jQuery, HTML5 APIs, next steps).
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.
- ch. 1 Understanding JavaScript Events → Run to completion, The event loop, Callbacks
- ch. 2 Distributing Events →
EventEmitter - ch. 3 Promises and Deferreds → Promises
- ch. 4 Flow Control with Async.js → Sequential or parallel,
all,allSettled,raceandany - ch. 5 Multithreading with Workers → Workers and parallelism
- ch. 6 Async Script Loading → Loading scripts
- app. A1 Tools for Taming JavaScript → Generators
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.
- ch. 1 Welcome to Node.js → The event loop, The Node.js runtime
- ch. 3 Node programming fundamentals → ES modules and CommonJS, Callbacks,
EventEmitter - ch. 4 Building Node web applications → HTTP
- ch. 10 Testing Node applications → The built-in test runner
- ch. 13 Beyond web servers → Child processes,
process - ch. 14 The Node ecosystem → npm
- app. B Debugging Node → Debugging Node
- Not mapped: ch. 2 (a chat application), chs. 5–9 and 11–12 (storage, Connect, Express, templating, deployment).
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.
- clause 8 Types → Values and types
- clause 9 Type Conversion and Testing → Equality and coercion, ToPrimitive
- clause 10 Executable Code and Execution Contexts → Variables and scope,
this - clause 15 Standard Built-in ECMAScript Objects → Objects, Arrays and collections, JSON
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