Eloquent JavaScript
3rd edition

This is a book about JavaScript, programming, and the wonders of the digital. You can read it online here, or get your own paperback copy of the second edition. A paper third edition is expected to be available this October.

Cover image

Written by Marijn Haverbeke.

Licensed under a Creative Commons attribution-noncommercial license. All code in this book may also be considered licensed under an MIT license.

Illustrations by various artists: Cover and chapter illustrations by Madalina Tantareanu. Pixel art in Chapters 7 and 16 by Antonio Perdomo Pastor. Regular expression diagrams in Chapter 9 generated with regexper.com by Jeff Avallone. Village photograph in Chapter 11 by Fabrice Creuzot. Game concept for Chapter 15 by Thomas Palef.

The third edition was made possible by 325 financial backers, most notably and . The second edition was supported by 454 backers, with significant contributions from , , and .

Contents

  1. Introduction
  2. (Part 1: Language)

    Values, Types, and Operators
  3. Program Structure
  4. Functions
  5. Data Structures: Objects and Arrays
  6. Higher-order Functions
  7. The Secret Life of Objects
  8. Project: A Robot
  9. Bugs and Errors
  10. Regular Expressions
  11. Modules
  12. Asynchronous Programming
  13. Project: A Programming Language
  14. (Part 2: Browser)

    JavaScript and the Browser
  15. The Document Object Model
  16. Handling Events
  17. Project: A Platform Game
  18. Drawing on Canvas
  19. HTTP and Forms
  20. Project: A Pixel Art Editor
  21. (Part 3: Node)

    Node.js
  22. Project: Skill-Sharing Website