Now through November 26th, get 50% off all ebooks! Use coupon code GRAVYBOAT.

Eloquent JavaScript, 2nd Edition

A Modern Introduction to Programming
by Marijn Haverbeke

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

Order now and get early access to the FULL PDF ebook!
(What's Early Access?)

Get 30% off with the coupon code EARLYBIRD

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
Chapter 2: Program Structure
Chapter 3: Functions
Chapter 4: Data Structures: Objects and Arrays
Chapter 5: Higher-Order Functions
Chapter 6: The Secret Life of Objects
Chapter 7: Project: Electronic Life
Chapter 8: Bugs and Error Handling
Chapter 9: Regular Expressions
Chapter 10: Modules
Chapter 11: Project: A Programming Language

Part II: Browser
Chapter 12: JavaScript and the Browser
Chapter 13: The Document Object Model
Chapter 14: Handling Events
Chapter 15: Project: A Platform Game
Chapter 16: Drawing on Canvas
Chapter 17: HTTP
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!)

View the detailed Table of Contents (PDF)
View the Index (PDF)



"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."
— 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)