The book is great for beginning to intermediate programmers who want to start working in JavaScript. I found it made for pleasant, light reading without lacking in substance. It's full of general information and good tips explained easily enough that you can read it through and remember most of what you've read, but organized so that you can easily find details if you need to look them up later.
It starts by explaining some of the basic concepts of working with JavaScript, what kinds of concepts the language follows, and how to work with data. JavaScript is full of pitfalls and corner cases that seem quite unpleasant to me, since I prefer more rigid languages that don't give you quite the degree of freedom that JavaScript does. If JavaScript is your first language, you might feel differently about a lot of the language's idiosyncracies. In either case, I felt that, after reading the book, I've been exposed to all of the major pitfalls that would have hit me otherwise. Even if I don't necessarily like them, I'll know how to deal with them in my own design or if I see them in other people's code.
The beginning sections are also full of useful (sometimes idiosyncratic) shortcuts to getting things done in JavaScript. In the process, the author has some very nice explanations for things that can often be difficult to understand when people see them for the first time. I was particularly impressed by his descriptions of closures and callbacks. Although I've learned to work with both of these concepts over the years and have the feeling that I understand them thoroughly, I don't think I've ever seen either concept as well explained anywhere else. This is particularly important because JavaScript is a language where you can come across both quite frequently - especially callbacks implemented in the observer pattern.
As the title says, the book is about object oriented JavaScript. If you're used to working with classical object oriented languages, you'll probably expect a lot of those standard concepts in JavaScript. That is not the case here - each object is a singleton, and inheritance is only one way of working with objects that you can implement. The book does a good job of showing all the possibilities available. I'm used to reading Java, C++, Python, etc., so I thought it was interesting to read how to implement classes in JavaScript and see some other patterns that you can come across in the language. At the end, though, I was surprised to see the author refer to a builtin function that does all the work of inheritance for you. Although I understand that he probably wanted to make sure that people got a taste of the JavaScript style before seeing a way of forcing the language to behave as they'd expect from other languages (something that you shouldn't do without understanding a bit more about how JavaScript deals with its objects if you want to avoid some hard-to-find bugs), I would have liked to see that more in the beginning. I still would have been interested in the theory behind it and also in alternative ways of implementing similar behavior. From a didactic standpoint, it would have allowed advanced users to see something they understand and can work with right away, without detracting from their ability to learn the other design possibilities. Beginners wouldn't have noticed the difference.
After the main course, the desert was a few very applied chapters on web development. Not only did they demonstrate how to easily implement cool behavior in webpages, but also how to build your code so that it works robustly across browsers. I really enjoyed this section, but I would have enjoyed it more if it would have referred the user to some libraries that implement many common functions in webpages, such as jQuery.
The appendix at the end is also quite useful, although it would have been helpful to have a section on browser capabilities or web development in general.