Customers who viewed this item also viewed
Buy New
-48%
$15.67$15.67
FREE delivery Monday, April 27 on orders shipped by Amazon over $35
Ships from: Amazon Sold by: CT Distributions LLC
Used - Very Good
$6.37$6.37
FREE delivery April 30 - May 4
Ships from: Reliant Distribution Sold by: Reliant Distribution
Sorry, there was a problem.
There was an error retrieving your Wish Lists. Please try again.Sorry, there was a problem.
List unavailable.
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.
Follow the author
OK
JavaScript: The Good Parts: The Good Parts First Edition
Purchase options and add-ons
Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a hurry before it could be refined. This authoritative book scrapes away these bad features to reveal a subset of JavaScript that's more reliable, readable, and maintainable than the language as a whole—a subset you can use to create truly extensible and efficient code.
Considered the JavaScript expert by many people in the development community, author Douglas Crockford identifies the abundance of good ideas that make JavaScript an outstanding object-oriented programming language-ideas such as functions, loose typing, dynamic objects, and an expressive object literal notation. Unfortunately, these good ideas are mixed in with bad and downright awful ideas, like a programming model based on global variables.
When Java applets failed, JavaScript became the language of the Web by default, making its popularity almost completely independent of its qualities as a programming language. In JavaScript: The Good Parts, Crockford finally digs through the steaming pile of good intentions and blunders to give you a detailed look at all the genuinely elegant parts of JavaScript, including:
- Syntax
- Objects
- Functions
- Inheritance
- Arrays
- Regular expressions
- Methods
- Style
- Beautiful features
The real beauty? As you move ahead with the subset of JavaScript that this book presents, you'll also sidestep the need to unlearn all the bad parts. Of course, if you want to find out more about the bad parts and how to use them badly, simply consult any other JavaScript book.
With JavaScript: The Good Parts, you'll discover a beautiful, elegant, lightweight and highly expressive language that lets you create effective code, whether you're managing object libraries or just trying to get Ajax to run fast. If you develop sites or applications for the Web, this book is an absolute must.
- ISBN-100596517742
- ISBN-13978-0596517748
- EditionFirst Edition
- PublisherO'Reilly Media
- Publication dateMay 1, 2008
- LanguageEnglish
- Dimensions7 x 0.38 x 9.19 inches
- Print length172 pages
Frequently bought together

Deals on related products
Customers also bought or read
- JavaScript: The Definitive Guide: Master the World's Most-Used Programming Language
Paperback$53.35$53.35FREE delivery Mon, Apr 27 - Eloquent JavaScript, 3rd Edition: A Modern Introduction to Programming
Paperback$12.97$12.97Delivery Mon, Apr 27 - Eloquent JavaScript, 4th Edition#1 Best SellerComputer Programming Structured Design
Paperback$23.55$23.55Delivery Mon, Apr 27 - HTML and CSS: Design and Build Websites#1 Best SellerCSS Programming
Paperback$14.98$14.98Delivery Mon, Apr 27 - JavaScript from Beginner to Professional: Learn JavaScript quickly by building fun, interactive, and dynamic web apps, games, and pages
Paperback$28.99$28.99Delivery Tue, Apr 28 - The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition (2nd Edition)#1 Best SellerSoftware Testing
Hardcover$41.64$41.64FREE delivery Mon, Apr 27 - JavaScript Patterns: Build Better Applications with Coding and Design Patterns
Paperback$28.30$28.30FREE delivery Tue, May 5 - Effective TypeScript: 83 Specific Ways to Improve Your TypeScript
Paperback$41.33$41.33FREE delivery Mon, Apr 27 - Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript (Effective Software Development Series)
Paperback$7.09$7.09Delivery Mon, Apr 27 - JavaScript and jQuery: Interactive Front-End Web Development
Paperback$14.90$14.90$3.99 delivery Fri, May 1 - Learning JavaScript Design Patterns: A JavaScript and React Developer's Guide
Paperback$38.00$38.00FREE delivery Mon, Apr 27 - Learning TypeScript: Enhance Your Web Development Skills Using Type-Safe JavaScript
Paperback$36.99$36.99FREE delivery Mon, Apr 27 - Programming TypeScript: Making Your JavaScript Applications Scale
Paperback$29.43$29.43Delivery Apr 29 - May 1 - JavaScript Crash Course: A Hands-On, Project-Based Introduction to Programming
Paperback$28.82$28.82Delivery Mon, Apr 27 - Mythical Man-Month, The: Essays on Software Engineering, Anniversary Edition
Paperback$27.68$27.68Delivery May 13 - 19 - Tour of C++, A (C++ In-Depth Series)#1 Best SellerC++ Programming Language
Paperback$39.99$39.99FREE delivery Mon, Apr 27 - Web Development with Node and Express: Leveraging the JavaScript Stack
Paperback$30.99$30.99Delivery Mon, Apr 27 - A Smarter Way to Learn JavaScript. The new tech-assisted approach that requires half the effort
Paperback$15.74$15.74FREE delivery Apr 29 - May 5 - JavaScript Pocket Reference: Activate Your Web Pages (Pocket Reference (O'Reilly))
Paperback$15.40$15.40Delivery Tue, Apr 28 - Practical SQL, 2nd Edition: A Beginner's Guide to Storytelling with Data
Paperback$21.49$21.49Delivery Mon, Apr 27 - JavaScript: The Comprehensive Guide to Learning Professional JavaScript Programming (Rheinwerk Computing)
Paperback$47.17$47.17FREE delivery Mon, Apr 27 - Interactive Data Visualization for the Web: An Introduction to Designing with D3
Paperback$25.50$25.50Delivery Mon, Apr 27
From the brand
-
Explore JavaScript resources
-
Explore TypeScript
-
Node.js
-
More from O'Reilly
-
Sharing the knowledge of experts
O'Reilly's mission is to change the world by sharing the knowledge of innovators. For over 40 years, we've inspired companies and individuals to do new things (and do them better) by providing the skills and understanding that are necessary for success.
Our customers are hungry to build the innovations that propel the world forward. And we help them do just that.
From the Publisher
From the Preface
This is a book about the JavaScript programming language. It is intended for programmers who, by happenstance or curiosity, are venturing into JavaScript for the first time. It is also intended for programmers who have been working with JavaScript at a novice level and are now ready for a more sophisticated relationship with the language. JavaScript is a surprisingly powerful language. Its presents some challenges, but being a small language, it is easily mastered.
My goal here is to help you to learn to think in JavaScript. I will show you the components of the language and start you on the process of discovering the ways those components can be put together. This is not a reference book. It is not exhaustive about the language and its quirks. It doesn't contain everything you'll ever need to know. That stuff you can easily find online. Instead, this book just contains the things that are really important.
This is not a book for beginners. Someday I hope to write a JavaScript: The First Parts book, but this is not that book. This is not a book about Ajax or web programming. The focus is exclusively on JavaScript, which is just one of the languages the web developer must master.
Editorial Reviews
About the Author
Douglas Crockford is a Senior JavaScript Architect at Yahoo!, well known for introducing and maintaining the JSON (JavaScript Object Notation) format. He's a regular speaker at conferences on advanced JavaScript topics, and serves on the ECMAScript committee.
Product details
- Publisher : O'Reilly Media
- Publication date : May 1, 2008
- Edition : First Edition
- Language : English
- Print length : 172 pages
- ISBN-10 : 0596517742
- ISBN-13 : 978-0596517748
- Item Weight : 2.31 pounds
- Dimensions : 7 x 0.38 x 9.19 inches
- Best Sellers Rank: #400,489 in Books (See Top 100 in Books)
- #18 in Functional Software Programming
- #49 in JavaScript Programming (Books)
- #360 in Software Development (Books)
- Customer Reviews:
About the author

Douglas Crockford is the author of How JavaScript Works. He has been called a JavaScript Guru, but he is more of a Mahatma. He was born in Frostbite Falls, Minnesota, but left when he was only six months old because it was just too damn cold. He has worked in learning systems, small business systems, office automation, games, interactive music, multimedia, location-based entertainment, social systems, and programming languages. He is the inventor of Tilton, the ugliest programming language that was not specifically designed to be an ugly programming language. He is best known for having discovered that there are good parts in JavaScript. That was the first important discovery of the Twenty First Century. He also discovered the JSON Data Interchange Format, the world’s most loved data format.
Related products with free delivery on eligible orders
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
Generated from the text of customer reviewsSelect to learn more
Reviews with images
Purchased at new price and received used
Top reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on June 27, 2008Format: PaperbackVerified PurchaseDo you struggle when creating objects in Javascript?
Do you find the syntax to be non-intuitive and frustrating?
Do you know the difference between using a function as an object vs using an object literal?
Do you know how using object literals can simplify your code and create something similar to namespaces?
Do you know how to augment the type system -- for example, if wanted all strings to have a trim() method?
Do you know why the "new" statement is so dangerous? Do you know an alternative that eliminates the use of "new" entirely?
These are some of the topics that the book touches upon.
This book is aimed at someone with intermediate programming experience that wants to know the best way to create and use objects, arrays, types, etc. Crockford takes his experience with Javascript to show you best practices coding techniques and styles to use with Javascript. In addition, the book provides insights into what makes Javascript so confusing and what can be done about it.
You might ask "Isn't this stuff already covered in other books that I have?" The answer is no. For one, most other books use a psuedo-classical coding style (see below) to explain objects that is a source of confusion.
Javascript can be very confusing, especially for programmers who have extensive experience in other C-based languages (like myself). Writing good Javascript that uses objects, methods, etc. is hard. In Javascript, if you want to create objects, use inheritance and create methods, you have several different ways to write your code and it's difficult to know what the strengths and weaknesses of each are.
Crockford explains the problem plainly. Other C-based languages use class inheritance (Crockford calls this classical inheritance). Javascript, on the other hand, is the only popular language that uses prototype inheritance, which does not have classes. However, the syntax which Javascript uses to create object is Java-like (Crockford calls this pseudo-classical syntax). It's confusing, because it keeps you in a class-based frame of mind while working in a language that has no concept of classes.
Clarifying what's going on with the object model is the best part of this book. Crockford also explains other parts of Javascript that can be problematic and the techniques that he prefers for handling them. I don't necessarily agree with all of them, but the important thing is that he explains his reasoning.
To effectively learn Javascript, I recommend that you buy 1) a book that covers the details of the language and can be used as a reference (e.g. Javascript, the Definitive Guide) and 2) Crockford's book. Advanced programmers might also enjoy Pro Javascript Design Patterns, which shows a number of ways to combine Javascript with some of the GoF patterns. I would avoid any cookbook style books on Javascript, because you're better off using YUI, JQuery or one of the other Javascript libraries than writing your own drag-and-drops, calendars, etc.
There are a series of Yahoo! videos by Crockford that mirror the material in this book and can be found as podcasts under YUI Theater. They contain nearly all of the material in the book and probably a little more. Those videos are:
- Douglas Crockford/An Inconvenient API: The Theory of the DOM (3 parts)
- Douglas Crockford/The JavaScript Programming Language (4 parts)
- Douglas Crockford/Advanced JavaScript (3 parts)
- Douglas Crockford/Javascript The Good Parts
- Reviewed in the United States on October 2, 2012Format: PaperbackVerified PurchaseI just finished this book. It's relatively short but you have to invest a lot of hours to properly absorb it. I think I'm going to need one more pass.
I do not understand the majority of complaints. Some compare Crockford to "the most boring professor you ever had", others said the information was poorly organized and not written very well. Others complained about his ego getting in the way. I, for one, found it to be very interesting and useful. Parts of it were a struggle to get through (and I've been a C coder for 20+ years) but mental challenges are a software engineer's specialty.
In my opinion, none of the complaints are completely true, assuming you are the right audience. This book is NOT for beginners. If you are relatively new to Javascript, it will definitely be useful, but if you are new to programming entirely, this book is not for you. This is a more academic book that gives you a peek behind the scenes to the inner workings of the Javascript language. It is more comparable to K&R's book for C Programmers, but not as complete (just the "good" and "awful" parts!).
It is a book about the Javascript LANGUAGE. It is NOT a book on web programming. It will NOT teach you anything about HTML, or the DOM, or how to put little fiddlly-bits on the screen, or how to work out game physics, or how to use any HTML-specific components. It is a book on the constructs of Javascript, plain and simple. It should NEVER be the only book on Javascript you would own, but if you are serious about Javascript, it should definitely be in your library. I don't think you can be a Javascript master without this book.
My minor grievances are mostly limited to subjective areas where I disagree with him:
1) He states his opinion absolutely, more so in the first part of the book. I prefer a less forceful approach that presents the arguments and lets you decide for yourself. However, I do not feel he went overboard in this regard as some did - I suspect they didn't get very far into the book.
2) While I completely understand the Javascript bugaboo that makes a case for mis-aligned curly braces (K&R style). I cannot get myself to follow this convention (except in a few areas where I make exceptions) To me, code is SO much easier to follow when all blocks are aligned. I will heed his advice and avoid the lurking JS bug, but I will not fully convert to misaligned braces. I resent that his JSLint tool generates hundreds of errors in my code because of this - but fortunately, there's an option to turn it off.
3) When he digs into some of the JS-specific patterns that aren't familiar to non-JS programmers, I wish he would add a disclaimer along the lines of "while this is a powerful tool, understand that depending on such patterns may make the code more difficult to maintain by others less trained in the specifics of Javascript. Or at least comment vigorously." I am a firm believer in "clarity over cleverness" in shared code.
4) In some of the trickier subjects, a few more examples would makes things easier to comprehend. I've never really used Regular Expressions before, and the chapter left my head swimming, and I felt the explanation of the various components of the expressions could have been better.
But these are not major grievances, and I whole-heartily recommend this book for the intermediate Javascript user or the novice JS user who has a solid background in general programming language constructs.
- Reviewed in the United States on April 4, 2014Format: KindleVerified PurchaseI am a fairly new programmer, so I do not know how my review will really help anyone. However this book took my understanding of Javascript to the next level. I went through the book, some of the content in the book is probably stuff you'll probably not utilize much at all, however it is comforting to have a reference at hand that can give you examples and a brief summation (other than MDN) to help you with your understanding of the book.
This book would pair nicely with Beautiful Code. The author mentions his article in the book, in that article he also looks at JS's good parts but in a simplified way.
The biggest thing to note when going into this book: the author emphasizes the importance of objects in JS, the use of functions and variables to manage objects and efficiently create JS programs. He also gives a section on the terrible parts of JS, just for one to understand and avoid them. All-in-all, it is a compact good book, a bit succinct on the more complex subjects. However go to stackoverflow and search/ask some questions if you are confused.
In my opinion the best chapters:
2-3. Intermingling this with actual coding on your part (utilizing JSbin or JSfiddle, etc) will help you get the most out of understanding some of the behaviors of the language. Pretty much utilizing objects is your best bet for creating efficient and usable JS code. 6 pretty much sums why arrays are inefficient in JS.
4-5, 8. This helps one understand the importance of functions in JS. Also there is a good reference for some of the more used methods that are tied to the prototypes objects.
10. It is short and does not teach you anything about JS, but pretty much sums why adding every single library you can is probably a terrible idea.
Top reviews from other countries
-
FranzReviewed in Germany on February 12, 20105.0 out of 5 stars Ezzes vom Javascript-Guru
Format: PaperbackVerified PurchaseEin rundum gelungenes Werk von Javascript-Guru, das trotz seiner schlanken Gestalt für viele Stunden Lesevergnügen sorgte.
In den wenigen Seiten ist soviel Wissen destilliert und in minimalistische Code-Beispiele gegossen, dass man jedes Kapitel gerne nochmals liest, um auch ja alles "mitzunehmen".
Javascript: The Good parts beginnt mit der Geschichte von Javascript und seinem Aufstieg von einer Verlegenheitslösung zur vielleicht wichtigsten Skriptsprache der Welt. Doch dann ist die Schonfrist vorbei: schonungslos zerpflückt Crockford die ohnehin spärliche Javascript-"Standardbibliothek" bzw. Syntax und erklärt anschaulich, warum ==, typeof und Co besser nicht mehr verwendet werden sollten. Auch die missglückte prototype/class-Inheritance von Javascript bekommt ihr Fett ab.
Aus den wenigen Resten, den good parts, zaubert Crockford aber erstaunliches: er erläutert, wie sich Klassen, Vererbung, Module oder funktionale Programmierung mit einfachsten Mitteln in Javascript emulieren lassen. Sehr gut finde ich, dass er den Bereich der DOM-Manipulation komplett außen vor läßt. Als hochperformante Programmiersprache hat sich Javascript längst von den typischen Rollover-Skriptchen emanzipiert, die in anderen Werken noch den Blick aufs Wesentliche verstellen.
Insgesamt eine sehr empfehlenswerte Lektüre für den fortgeschrittenen Javascript-Entwickler.
A ReaderReviewed in the United Kingdom on February 3, 20095.0 out of 5 stars JavaScript the language, presented for professional programmers
Format: PaperbackVerified PurchaseIn this small and dense book you will find JavaScript guru Douglas Crockford's presentation of the beautiful subset of a language that lies within JavaScript as a whole. You can use this subset to write serious programs. Occasionally you might have to use some of what Crockford calls "the bad parts", but at least you'll know the dangers, and how to mitigate them.
Perhaps more importantly, Crockford is very, very aware of how JavaScript differs from classical OO languages, and how these differences can and do trip up classically trained programmers, coming from (say) C++, C# or Java backgrounds. Crockford goes out of his way to point out the differences and the new way of thinking that is required for JavaScript.
This book is not necessarily going to be an easy read, even for professionals. Crockford says so himself in the preface. It's dense and terse. By necessity it introduces terms that might be confusing at first, and which are only explained later. You have to read the whole book, patiently waiting for certain concepts to be explained, and for things to fall into place. On a re-read it all begins to make real sense. I do recommend that this book is read at least twice, preferrably three times. At least it's short!
There is not much to do with the web in this book. There's no DOM manipulation examples, and no Ajax calls. You will find no discussion of modern JavaScript libraries. Crockford just focusses on his area of expertise: the JavaScript language. He highlights and promotes the good parts, and in appendices talks about the "Awful" and merely "Bad" parts.
This is an important book. Crockford writes with the authority, seriousness and simplicity of K&R. To be a modern web developer you really need to know what you're doing with respect to JavaScript. Look to other books to discuss JavaScript libraries, the DOM, animation effects and Ajax. Look to this book for the starting point to all that: the JavaScript language itself, weird and wonderful, familiar yet strange, bad parts and (fortunately) good parts.
JeffReviewed in Canada on April 18, 20165.0 out of 5 stars Classic, Invaluable.
Format: PaperbackVerified PurchaseI would not forgive myself if I did not write a review for this book. This is one of the best books I have ever read in my entire life. It does not only help me grasp and love Javascript, but also greatly improved my understanding the way of how to do better programming. As a programmer, if you have not read this book, you missed a very good part. So, if you want to learn Javascript, this is definitely the right book to read.
Like the author said, This book is small, but it is dense. It is very hard to understand some pages in the first read. I read every pages at least 3 times, some pages more than 10 times to get the idea fully. But the effort definitely got rewarded.
-
Jared Jonathan Ortega PonceReviewed in Mexico on August 21, 20235.0 out of 5 stars Super interesante.
Format: PaperbackVerified PurchaseEs un libro donde cada capitulo tiene algo que puedes aplicar en tu trabajo de todos los días. Esta lleno de buenos consejos o cosas que muchas veces se pasan por alto. Me encanto.
-
Matteo AmbrosiReviewed in Italy on June 30, 20165.0 out of 5 stars Ottimo per principianti ed esperti
Format: PaperbackVerified PurchaseIl libro è scritto veramente molto bene, i consigli forniti possono essere molto utili sia per uno sviluppatore principiante che per esperti. L'inglese utilizzato è abbastanza semplice e risulta di facile comprensione anche per chi non conosce la lingua in modo approfondito. Il metodo espositivo è molto concentrato, non ci sono tanti giri di parole o discorsi lunghi per aumentare il numero di pagine del libro, si tratta di un concentrato di informazioni molto utile anche da tenere a fianco del pc nel lavoro di tutti i giorni. Consigliato!

















