This new edition has exactly the same structure and ordering of material as the first edition [1]. It is, however, an enhancement in that many of the errors in the first edition have been corrected. The book is still aimed at those who have a working knowledge of programming and is not intended for novices. Anyone without at least some basic programming experience will quickly get lost, as this book presents material with the assumption that the reader has these skills. However, for someone who has completed a data structures course, this excellent, no-nonsense book covers JavaScript thoroughly. The book progresses through a variety of well-motivated and useful examples to illustrate data types and control structures. The book culminates with an example of dynamic galleries and the use of application programming interfaces (APIs) to access Google Maps.
With ample code examples throughout, the book will serve as a handy reference to readers as they start to develop their own scripts. There are a few occasions when some additional explanation of the code would have been helpful, especially when the book is being used as a reference rather than being read from front to back.
The appendix on debugging JavaScript is very helpful and provides hints that extend beyond the “read the code and scratch your head” methodology practiced by many. The suggestions are helpful, so helpful that it might make sense to convert this appendix to a chapter and give it the attention it deserves and needs. Offering the hints for debugging in an appendix, while useful, could frustrate rather than liberate the reader who may overlook it as merely supplemental.
Missing from the book is any discussion of efficiency. Without some basic understanding of efficiency issues, it is all too easy to design a website so heavy with JavaScript that it fails to load quickly and behave in an efficient manner.
Overall, the book is well written, but the descriptions can be a little terse at times. The examples are valuable, the motivation is good, and the author makes it fun to journey from (almost) novice JavaScript programmer to accomplished designer of dynamic web pages making use of the available features.