Eloquent JavaScript, 2nd Edition

Eloquent JavaScript, 2nd Edition

A Modern Introduction to Programming
by Marijn Haverbeke
December 2014, 472 pp.

JavaScript lies at the heart of almost every modern web application, from social apps to the newest browser-based games. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications.

Eloquent JavaScript, 2nd Edition dives deep into the JavaScript language to show you how to write beautiful, effective code. Author Marijn Haverbeke immerses you in example code from the start, while exercises and full-chapter projects give you hands-on experience with writing your own programs. As you build projects such as an artificial life simulation, a simple programming language, and a paint program, you’ll learn:

  • The essential elements of programming, including syntax, control, and data
  • How to organize and clarify your code with object-oriented and functional programming techniques
  • How to script the browser and make basic web applications
  • How to use the DOM effectively to interact with browsers
  • How to harness Node.js to build servers and utilities

This edition is thoroughly revised and modernized to reflect the current state of Java­Script and web browsers, with brand-new material, such as a chapter on code performance in Java­Script, and expanded coverage of recursion and closures. All source code is available online in an inter­active sandbox, where you can edit the code, run it, and see its output instantly.

Isn’t it time you became fluent in the language of the Web?

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

Author Bio 

Marijn Haverbeke is an independent developer and author, focused primarily 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.

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: JavaScript and Performance (Exclusive to the No Starch Press edition!)

View the detailed Table of Contents
View the Index


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

"Provides some of the best explanations of programming concepts that I've ever read."
Sandra Henry-Stocker, IT World (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)


See the errata page for updates and errata.