I banged through the new O'Reilly book by Douglas Crockford titled JavaScript: The Good Parts

Crockford is a very eminent programmer in the javascript community and I was excited to see a book come out by him. However, after reading it, I have to say it wasn't what I expected. I thought it was going to be a very detailed description of Javascript objects, and particularly JSON of which he developed and popularized. But what I found it to be was a description of what is good, bad and ugly about the language. Quite interesting for anyone who has used the language for any length of time, and would consider themselves adept in the language. At times I think I am adept, but I find when I begin to think that I get challenged to the point that I really don't know much at all.

There are a lot of different sources of information available for learning javascript especially since Ajax and DOM have re-defined the web.

If you fit into the category of being adept with javascript, then I would recommend the book. Crockford does a nice job of explaining the parts of the language that you should utilize. He also describes the bad parts, but doesn't really offer solutions for those parts. In the chapter "Awful Parts" he starts out by telling you the absolute worse part of javascript is the use of global variables but also states this:

The problem with Javascript isn't just that it allows them, it requires them. Javascript does not have a linker. All compliation units are loaded into a common global object.

But as it mentions earlier in the book in the section about modules he suggest that the use of modules can almost completely eliminate the need for use of global variables. So there are solutions, it just doesn't follow. I find the flow of the book to be a little difficult in that regard.

Callbacks, closures, and scope are well documented. The chapter on Inheritence offers ways to implement classical and prototypal inheritance. The chapter on arrays is concise, but to the point of covering the various types of arrays, including the object literal. If you are a visual person, the book comes with plenty of syntax diagrams. The appendixes have good information. One of which is about JSON (Javascript Object Notation). Another appendix recommends the use of JSLint as a tool to validate and check your javascript syntax.

I purchased the book through Amazon and I plan to re-read it to try to let it sink in some more. The book is a very short 153 pages. You can sit down and read it in a sitting or two. If you are looking for a book to learn javascript, this is not for you. If you fit into the category I described, the book is for you, but you may want to consider a lending institution over actually purchasing the book. I don't think it is as much of a reference book as it is an interesting viewpoint on some of the inner workings of javascript. If you are looking for a better reference for JavaScript, I would recommend Pro JavaScript Design Patterns (Recipes: a Problem-Solution Ap) by Ross Harmes and Dustin Diaz.