Eloquent JavaScript, 2nd Edition

A Modern Introduction to Programming
by Marijn Haverbeke

December 2014, 400 pp.
ISBN: 978-1-59327-584-6
Contents | Reviews | Updates

Order now and get early access to the PDF ebook!
(What's that?)
(Which chapters are available now?)

Get 30% off with the coupon code EARLYBIRD

"This book rekindled my earliest joys of programming."
—Brendan Eich, creator of JavaScript

JavaScript is at the heart of almost every modern Web application, whether it's Google Apps, Twitter, or the newest browser-based game. Though it's simple for beginners to pick up and play with, JavaScript is not a toy—it's a flexible, complex language that you can use to build full-scale applications.

Eloquent JavaScript, 2nd Edition dives into the language and teaches you to write beautiful, effective code. By immersing you in example code and encouraging experimentation right from the start, the author quickly provides the tools you need to build your own programs. As you follow along with examples like an artificial life simulation, a simple programming language, and a platform game, you'll learn to:

  • Understand the essential elements of programming: syntax, control, and data
  • Organize and clarify your code with object-oriented and functional programming techniques
  • Script the browser and make basic Web applications
  • Harness node.js to build servers and utilities
  • Use the DOM effectively to interact with browsers

This new edition is thoroughly revised and modernized, and it’s full of brand-new material, including expanded content on recursion, closures, and more. All source code is available online in an interactive sandbox and has been updated to follow current JavaScript idioms. With Eloquent JavaScript, 2nd Edition as your guide, you'll be fluent in the language of the Web before you know it.

Includes an exclusive chapter, only available in the No Starch Press edition!

About the Author

Marijn Haverbeke is an independent developer and author, focusing mostly on programming languages and tools for programmers. He spends most of his time working on open-source software, such as the CodeMirror editor and the Tern type inference engine for JavaScript.

Table of Contents


Part I: Language
Chapter 1: Values, Types, and Operators (AVAILABLE NOW)
Chapter 2: Program Structure (AVAILABLE NOW)
Chapter 3: Functions (AVAILABLE NOW)
Chapter 4: Data Structures: Objects and Arrays (AVAILABLE NOW)
Chapter 5: Higher-Order Functions (AVAILABLE NOW)
Chapter 6: The Secret Life of Objects (AVAILABLE NOW)
Chapter 7: Project: Electronic Life (AVAILABLE NOW)
Chapter 8: Bugs and Error Handling (AVAILABLE NOW)
Chapter 9: Regular Expressions (AVAILABLE NOW)
Chapter 10: Modules (AVAILABLE NOW)
Chapter 11: Project: A Programming Language (AVAILABLE NOW)

Part II: Browser
Chapter 12: JavaScript and the Browser (AVAILABLE NOW)
Chapter 13: The Document Object Model (AVAILABLE NOW)
Chapter 14: Handling Events (AVAILABLE NOW)
Chapter 15: Project: A Platform Game (AVAILABLE NOW)
Chapter 16: Drawing on Canvas (AVAILABLE NOW)

Chapter 18: Forms and Form Fields
Chapter 19: Project: A Paint Program

Part III: Node
Chapter 20: Node.js
Chapter 21: Project: A Skill-Sharing Website
Chapter 22: Why JavaScript is So Fast (Exclusive to the No Starch Press edition!)



"Marijn Haverbeke is a software philosopher and all-round genius. He also has a terrific sense of humor and writes both prose and code in a friendly and un-intimidating fashion. In common with the very best teachers he dispenses his wisdom with disarming simplicity. I became a better architect, author, mentor and developer because of this book. It deserves to share shelf space with Flannagan and Crockford."
—Angus Croll, Twitter Developer (Read More)

"One of the greatest texts for not just learning JavaScript, but for learning modern programming in general as told through JavaScript. This is the book I give out when people ask me how to learn proper JavaScript."
—Chris Williams, organizer of JSConf US

"Eloquent JavaScript is a good book, suitable for those without experience in JavaScript and even those without programming experience."
—Nicholas Zakas, author of High Performance JavaScript (Read More)

"Eloquent JavaScript is one of the best JavaScript books I've read."
—Rey Bango, jQuery Team member and Client-Web Community Program Manager at Microsoft (Read More)

"This book is a really good guide to JavaScript; but even more than that, this book is a great guide to programming."
—Ben Nadel, Chief Software Engineer at Epicenter Consulting (Read More)

"Eloquent JavaScript does a good job of detailing the fundamentals and explaining concepts like the stack and the environment. This attention to detail is what sets the book apart from other JavaScript books."
—Designorati (Read More)

"It's a fantastic book."
—Design Shack (Read More)

"If you're new to JavaScript, the first thing I'd recommend you do is visit Eloquent JavaScript and check out Marijn Haverbeke's introduction to the language."
—CNET UK (Read More)

"Eloquent JavaScript is a great book if you're learning JavaScript."
—Craig Buckler, Optimalworks Ltd. (Read More)

"A JavaScript book and programming primer that stands apart from the rest."
—Webmaster-Source (Read More)

"This book takes a different approach to teaching JavaScript to beginners and by doing so manages to cover a large portion of the language very thoroughly in a relatively small book."
—About.com JavaScript (Read More)

"If you choose to start your JavaScript journey with this book, it can quickly teach you a lot of technical information."
—Michael J. Ross, and Slashdot contributor (Read More)