Buy new:
Save with Used - Good
Return this item for free
We offer easy, convenient returns with at least one free return option: no shipping charges. All returns must comply with our returns policy.
Learn more about free returns.- Go to your orders and start the return
- Select your preferred free shipping option
- Drop off and leave!

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript (Effective Software Development Series) 1st Edition
Purchase options and add-ons
“It’s uncommon to have a programming language wonk who can speak in such comfortable and friendly language as David does. His walk through the syntax and semantics of JavaScript is both charming and hugely insightful; reminders of gotchas complement realistic use cases, paced at a comfortable curve. You’ll find when you finish the book that you’ve gained a strong and comprehensive sense of mastery.”
―Paul Irish, developer advocate, Google Chrome
“This is not a book for those looking for shortcuts; rather it is hard-won experience distilled into a guided tour. It’s one of the few books on JS that I’ll recommend without hesitation.”
―Alex Russell, TC39 member, software engineer, Google
In order to truly master JavaScript, you need to learn how to work effectively with the language’s flexible, expressive features and how to avoid its pitfalls. No matter how long you’ve been writing JavaScript code, Effective JavaScript will help deepen your understanding of this powerful language, so you can build more predictable, reliable, and maintainable programs.
Author David Herman, with his years of experience on Ecma’s JavaScript standardization committee, illuminates the language’s inner workings as never before―helping you take full advantage of JavaScript’s expressiveness. Reflecting the latest versions of the JavaScript standard, the book offers well-proven techniques and best practices you’ll rely on for years to come.
Effective JavaScript is organized around 68 proven approaches for writing better JavaScript, backed by concrete examples. You’ll learn how to choose the right programming style for each project, manage unanticipated problems, and work more successfully with every facet of JavaScript programming from data structures to concurrency. Key features include
- Better ways to use prototype-based object-oriented programming
- Subtleties and solutions for working with arrays and dictionary objects
- Precise and practical explanations of JavaScript’s functions and variable scoping semantics
- Useful JavaScript programming patterns and idioms, such as options objects and method chaining
- In-depth guidance on using JavaScript’s unique “run-to-completion” approach to concurrency
- ISBN-100321812182
- ISBN-13978-0321812186
- Edition1st
- PublisherAddison-Wesley Professional
- Publication dateNovember 26, 2012
- LanguageEnglish
- Dimensions6.9 x 0.4 x 9 inches
- Print length240 pages
Customers who viewed this item also viewed
Editorial Reviews
Review
“Living up to the expectation of an Effective Software Development Series programming book, Effective JavaScript by Dave Herman is a must-read for anyone who wants to do serious JavaScript programming. The book provides detailed explanations of the inner workings of JavaScript, which helps readers take better advantage of the language.”
―Erik Arvidsson, senior software engineer
“Before reading Effective JavaScript, I thought it would be just another book on how to write better JavaScript. But this book delivers that and so much more―it gives you a deep understanding of the language. And this is crucial. Without that understanding you’ll know absolutely nothing whatever about the language itself. You’ll only know how other programmers write their code.
“Read this book if you want to become a really good JavaScript developer. I, for one, wish I had it when I first started writing JavaScript.”
―Anton Kovalyov, developer of JSHint
“If you’re looking for a book that gives you formal but highly readable insights into the JavaScript language, look no further. Intermediate JavaScript developers will find a treasure trove of knowledge inside, and even highly skilled JavaScripters are almost guaranteed to learn a thing or ten. For experienced practitioners of other languages looking to dive headfirst into JavaScript, this book is a mustread for quickly getting up to speed. No matter what your background, though, author Dave Herman does a fantastic job of exploring JavaScript―its beautiful parts, its warts, and everything in between.”
―Rebecca Murphey, senior JavaScript developer, Bocoup
“Effective JavaScript is essential reading for anyone who understands that JavaScript is no mere toy and wants to fully grasp the power it has to offer. Dave Herman brings users a deep, studied, and practical understanding of the language, guiding them through example after example to help them come to the same conclusions he has. This is not a book for those looking for shortcuts; rather, it is hard-won experience distilled into a guided tour. It’s one of the few books on JavaScript that I’ll recommend without hesitation.”
―Alex Russell, TC39 member, software engineer, Google
“Rarely does anyone have the opportunity to study alongside a master in their craft. This book is just that―the JavaScript equivalent of a time-traveling philosopher visiting fifth century BC to study with Plato.”
―Rick Waldron, JavaScript evangelist, Bocoup
About the Author
David Herman is a principal researcher at Mozilla Research. He holds a BA in computer science from Grinnell College, and an MS and PhD in computer science from Northeastern University. David serves on Ecma TC39, the committee responsible for the standardization of JavaScript.
Product details
- Publisher : Addison-Wesley Professional
- Publication date : November 26, 2012
- Edition : 1st
- Language : English
- Print length : 240 pages
- ISBN-10 : 0321812182
- ISBN-13 : 978-0321812186
- Item Weight : 1 pounds
- Dimensions : 6.9 x 0.4 x 9 inches
- Part of series : Effective Software Development
- Best Sellers Rank: #1,390,030 in Books (See Top 100 in Books)
- #296 in JavaScript Programming (Books)
- #309 in Software Development (Books)
- #684 in Programming Languages (Books)
- Customer Reviews:
About the author

Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonCustomers say
Customers find the book provides good insights into JavaScript's gotchas, with clear explanations and plenty of example code. They appreciate its effectiveness, with one customer noting it's quite useful for beginners.
AI Generated from the text of customer reviews
Select to learn more
Customers appreciate the book's pacing, noting it provides good insights into JavaScript gotchas and is very well explained with plenty of example code.
"...It also is very humble, the sections make the point and pose the advice, and if you don't grok it then you had better revisit it...." Read more
"...68 items may sound a bit cumbersome, but the explanations are very clear and the reading direction is forward - rarely, if at all, do you need to..." Read more
"...This one is definitely one of the better ones. It's a nice easy read that gave me a few new ideas (I get stuck in classical thinking a lot)...." Read more
"...You'll come away possessing a greater intimacy with Javascript...." Read more
Customers find the book effective, with one noting it lives up to its standard and another mentioning it is quite useful for beginners.
"From the legendary Effective series, this book is lives up to it's standard. It goes deep into the language in a series of 68 topics...." Read more
"...There are tips and tricks that are very effective and can save you a lot of time in development...." Read more
"...I give it three stars because I believe this book would be quite useful for a tyro, but for anyone that has used the language professionally for..." Read more
"This book reminds me the Effective C++: 55 Specific Ways long time ago, it's easy to follow, very helpful tips, you don't have to read from beg to..." Read more
Reviews with images

Soon to be a Classic, Just Like its Namesake
Top reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on October 21, 2013Format: KindleVerified PurchaseLooking for resources to help you maximize your learnings and minimize your
time use is often fruitless. Publishing deadlines cut books short, real life
gets in the author's way, and personal preference, well there isn't much you
can do about that. In many ways, this book is an oddity.
The voice is at ease, nothing is crammed down your throat and it doesn't feel
like he was slamming caffeinated beverages just to get it done. It is refreshing
being the recipient of an exposition that not only teaches you, but questions
you, and sets expectations of you and what you should learn. The book is broken
up into 68 different lessons, and it ends up being a perfect approach. It gives
you time to pick it up when you are free and dig as deep as you want. It also
is very humble, the sections make the point and pose the advice, and if you
don't grok it then you had better revisit it. Again, it makes for peaceful and
pleasant reading, without sacrificing the seriousness or even urgency of the
valuable points contained within.
Books like this are few and far between, at least when it comes to industrial
concerns. This book is a gem for the JavaScript technology, because it poses
the technology for thoughtful grownups instead of obsessing over the 24h
tricks, recipes of the week, and "one way to do it right", it will be a timeless
contribution that will always be valued.
Just like the author said, it is not for new learners of the language, it is for
experiences programmers who have gotten through the first 80% and now want to
master the remaining 80%.
On the Kindle it looked great, text, code, and pictures.
In my eyes, this is the missing manual that should have gone out with
ECMA-262. 5/5
- Reviewed in the United States on March 8, 2014Format: KindleVerified PurchaseAlthough it's been around for almost 20 years, JS doesn't have a well established standard - the gap between different hosting environments and other important issues are not covered by ECMAScript specification.
JS is a very powerful and dynamic language to begin with, which without correct guidance may lead you to
fundamental mistakes, struggling with unanticipated, untraceable bugs and inefficient computing.
I find this book to be the 'missing guide' on how to bridge over these gaps and level up your knowledge of JS.
This book covers 68 principles of JavaScript programming in an intelligent, concise and clear manner.
It focuses mainly on pitfalls and best practices to avoid them by writing better, robust code.
68 items may sound a bit cumbersome, but the explanations are very clear and the reading direction is forward - rarely, if at all, do you need to hop back and forth between items to understand what you're currently reading.
The items span several topics:
* general JavaScript idioms - this is not a beginner's introduction, but more of a review over the language strengths and weaknesses
* variable scopes - best practices regarding global objects and other scope concerns
* functions - the identity of functions as traditional functions, methods and closures. how to use them properly in terms of context ('this' object)
* objects/prototypes - the identity of objects as classes/interfaces - proper prototyping and inheritance
* arrays - how to leverage standard Array API and common pitfalls
* API design - tips on how to write a concise and unambiguous API (be it for public use or your own code base)
* concurrency - guidelines for writing asynchronous functions properly and a brief description of Promises.
- Reviewed in the United States on June 23, 2013Format: KindleVerified PurchaseI have programmed in C, C++, Clipper(remember DBase?), Fortran, Java (since beta), Groovy, Python,TCL, basic, PHP, and Javascript. Those are just the ones I can remember right now. I have read many programming books over the years. This one is definitely one of the better ones. It's a nice easy read that gave me a few new ideas (I get stuck in classical thinking a lot). Unlike most programming books I sat down and read it from cover to cover (on a Kindle app... so I guess from 0 to 100 percent would be more accurate). The book in general does a good job of representing the true essence of the Javascript language. I think it is important to understand a languages perspective in order to use them effectively. This book lives up to its name.
- Reviewed in the United States on October 10, 2014Format: PaperbackVerified PurchaseThis is clearly an extraordinary book, worthy of its namesake, "Effective Java" by Joshua Bloch, which has attained the status of being "a classic", since its publication in 2001. This book, "Effective Javascript", is sure to attain the same status.
It's easy to tell when a subject is being explained to you by someone who understands a subject at its core and is in touch with its essence. With so many books on Javascript (and I've read a lot of them), you come away with the impression that they were written for the sake of being able to say, "I wrote a book", not really giving you better insight into the subject matter. But, those authors apparently felt they could study up on the material and phrase things better than others. Consequently, you come out knowing pretty much what you knew going in, but with just a slightly different slant on the topics.
This book, however, is a complete shift in that pattern. You'll come away possessing a greater intimacy with Javascript.
Update 7/19/2015: I'm taking away one star, not because of the anything that reflects on the author, or the quality of the content presented, but because the publisher is an inattentive dullard when it comes to making sure the formatting of the Kindle edition is right. Things like (10 + 20) + 30 come out looking like (10 2+0) 3+0. See attached screenshot. It ruins an otherwise great book. My advice to David Herman is, next time you write a book, don't choose Addison-Wesley Professional because they do no honor to an otherwise excellent book.
4.0 out of 5 starsThis is clearly an extraordinary book, worthy of its namesake, "Effective Java" by Joshua Bloch, which has attained the status of being "a classic", since its publication in 2001. This book, "Effective Javascript", is sure to attain the same status.Soon to be a Classic, Just Like its Namesake
Reviewed in the United States on October 10, 2014
It's easy to tell when a subject is being explained to you by someone who understands a subject at its core and is in touch with its essence. With so many books on Javascript (and I've read a lot of them), you come away with the impression that they were written for the sake of being able to say, "I wrote a book", not really giving you better insight into the subject matter. But, those authors apparently felt they could study up on the material and phrase things better than others. Consequently, you come out knowing pretty much what you knew going in, but with just a slightly different slant on the topics.
This book, however, is a complete shift in that pattern. You'll come away possessing a greater intimacy with Javascript.
Update 7/19/2015: I'm taking away one star, not because of the anything that reflects on the author, or the quality of the content presented, but because the publisher is an inattentive dullard when it comes to making sure the formatting of the Kindle edition is right. Things like (10 + 20) + 30 come out looking like (10 2+0) 3+0. See attached screenshot. It ruins an otherwise great book. My advice to David Herman is, next time you write a book, don't choose Addison-Wesley Professional because they do no honor to an otherwise excellent book.
Images in this review
Top reviews from other countries
- specificityyReviewed in the United Kingdom on July 16, 2017
5.0 out of 5 stars Great book for turning you into an effective JS developer
Format: PaperbackVerified PurchaseNice and easy read, I loved this book. If you're beginning with JavaScript, you'll find the concepts will really help you master the language, but even if you're experienced, there are most likely stuff here you didn't know before, and in some parts you'll find yourself saying: "I knew that worked like that, but didn't know why!". This book is a must read for every JS developer out there.
-
FukeiReviewed in France on June 2, 2014
4.0 out of 5 stars Une saine lecture
Format: PaperbackVerified PurchaseCet ouvrage s'adresse à un public qui connaît déjà javascript mais qui ne sait pas toujours "pourquoi là ça marche et pourquoi là ça marche pas" et qui souhaite approfondir sa connaissance du langage.
Il lève le voile de manière très compréhensible sur les bizarreries, pardon, les particularités, de ce langage qui, quotidiennement, nous amènent à nous tirer une balle dans le pied. Les conversions implicites, les portées de variables, les méthodes fréquemment utilisées mais non-standard... ce genre de blagues. Les explications sont étayées d'exemples nombreux, d'idiomes salvateurs et elles vous permettront éventuellement de clouer le bec au grincheux qui trouve que jshint est un dictateur obscurantiste.
Comparé à "Secrets of the javascript ninja" que j'ai feuilleté, ce livre me semble moins pointu mais plus accessible et finalement plus utile au quotidien. Il n'aborde ni jQuery, ni aucun autre framework "récent", par contre il traite d'ecmascript 5.
La mise en page est agréable à lire, les exemples utilisent la coloration syntaxique avec les "choses à retenir" en fin de chapitre. Si je devais formuler un reproche, c'est que face à la profusion d'exemples, on se dit parfois "tl;dr, je lis juste la liste à retenir".
- SrkReviewed in India on July 18, 2019
5.0 out of 5 stars Excellent Book on javascript
Format: KindleVerified PurchaseDoes not matter if you are newbie to JS or experienced programmer, this book is worth reading. It collectively has all the good parts and the pitfalls of the language. Must read for a JS programmer
- Dietmar KönigReviewed in Germany on February 3, 2014
5.0 out of 5 stars Good Value for Money
Format: PaperbackVerified PurchaseIf you have come from other programming languages to Javascript, then this book is for you. In a very concise manner, "Effective JavaScript" explains the special JavaScript paradigma, shows you how to do things "the JavaScript Way" and tells you about the pitfalls on the way.
Although coders relatively fresh to JavaScript will gain most from the book, I would also recommend it for more seasoned developers who might still learn aspects of the language they didn't so far know, or re-learn about pitfalls once known but hence forgotten.
All-in-all a typical book for the "Effective ..." range.
-
Igor T. GhisiReviewed in Brazil on July 26, 2014
5.0 out of 5 stars Direto ao ponto
Format: KindleVerified PurchaseO livro aborda boas práticas de programação em JavaScript, cobrindo as nuances em relação a outras linguagens. O capítulo sobre Concurrency é obrigatório para qualquer um que queira implementar código de forma mais profissional. Também oferece uma abordagem bastante pragmática em relação a orientação a objetos, que mostra importantes particularidades nesta linguagem.