JavaScript Books

Scott DeLoach
Published in Technical Communication, August, 1999

JavaScript is one of the easiest to learn and most widely supported web technologies. It can be used to create table of contents, indexes, popup windows, context-sensitive Help, tutorials, and quizzes—just about everything you need to create a cross-browser, cross-platform Help system. If you are creating web sites or HTML-based Help, JavaScript can be used to interact with and engage your audience. When combined with Dynamic HTML and Cascading Style Sheets (CSS), it is an invaluable tool in creating “next generation” web sites and online Help.

I have been writing JavaScript scripts for about eighteen months. When I decided to start learning JavaScript, I went to the bookstore and spent many hours comparing the twenty or so JavaScript books on the shelves (the book I finally purchased–Designing with JavaScript–is reviewed below). To write this review, I returned to the bookstore and again spent hours reviewing the now thirty-five JavaScript books. The books reviewed below are my list of the best current JavaScript books. I have tried to provide a short summary of what each book has to offer to technical communicators who are interested in using and possibly learning JavaScript. The books are divided into tutorial-based books that teach and explain JavaScript (“Beginner Tutorials”) and books that assume some programming knowledge and serve as reference guides (Advanced References”).

Beginner tutorials

ISBN: 156592360X ISBN: 032119439X ISBN: 0079137369

Designing With JavaScript: Creating Dynamic Web Pages

Nick Heinle’s Designing with JavaScript is an invaluable resource to the new JavaScript programmer. The writing style is very conversational and easy to follow, and the examples are always well explained and useful. I taught myself JavaScript with Heinle’s book, and it is the book I recommend to any novice programmer. In fact, I still refer to this book when I am writing scripts.

The real strength of Designing with JavaScript is the examples. Heinle has a real-world example for everything. The first chapter explains JavaScript’s document object model (not an easy thing for the novice to grasp) using a real world script that displays different text and images based on the time of day. In sixteen pages, the user learns how to hide a script from older browsers, check the current date and time, use an if…then statement, and how to write text to the status bar. In other books, these examples would be unrelated examples, and the reader would be expected to imagine a way to use them in a useful script. In Designing with JavaScript, Heinle always offers a complete script for the user to explore and modify to fit their needs.

Beyond the book, Heinle maintains a website (www.webcoder.com) to offer additional examples and demonstrations of JavaScript. Heinle does a great job of providing workarounds for any potential problem, from a bug in the Unix version of Netscape 3 to the image handling problems of Internet Explorer 3.

Visual QuickStart Guide: JavaScript for the World Wide Web

Negrino and Smith’s Visual Quickstart Guide to JavaScript for the World Wide Web is aimed at the novice user. Their approach is summed up in the Introduction when they state, “You don’t have to be a geek or a nerd to write a [JavaScript] script.” Considering its thin size (170 pages), the QuickStart Guide packs a lot of useful information in an approachable and easy-to-read format. Numerous useful examples are provided in a two-column procedure-and-code-example format. One complaint I did have with the examples is that the authors do not always point out browser-specific bugs or provide workarounds.

If you are looking for a cut-and-paste sourcebook, the QuickStart guide is a great choice. With the provided examples, a novice user could create image rollovers and validating forms. However, the book does not provide a language reference, and it doesn’t really explain the concepts of JavaScript scripting. In other words, the QuickStart Guide is not going to help you become a JavaScript programmer, but it’s a great way to add some quick JavaScript scripts to your web pages.

JavaScript Complete

Steven Holzner’s JavaScript: Complete is a great book for the beginning JavaScript programmer. Holzner assumes no prior programming knowledge, and he takes his time explaining the basics of the language. The book is packed with over ninety examples, including every popular JavaScript script. One example even demonstrates a simple way to create and open a Help window for a web page. Holzner also provides numerous tips and notes to keep the reader on track. These tips and notes were so useful, I wish that they were provided in an appendix or as part of a much-needed debugging chapter.

One of the biggest limitations of JavaScript: Complete is also one of its biggest advantages: the book is focused specifically on Netscape Navigator and Internet Explorer 4+. If you are not worried about backward compatibility, you won’t have to wade through older browser workarounds. JavaScript can be complicated enough without having to worry about the numerous limitations and bugs in previous browser versions, especially Internet Explorer 3. With JavaScript: Complete, you can focus on the latest version of JavaScript (1.2) and only worry about differences between Navigator 4 and Internet Explorer 4. Given that both companies are releasing version 5 browsers this year, backward compatibility to version 3 is becoming even less a priority. If you do have to support older browsers, you should consider Heinle’s Designing with JavaScript.

Overall, I was impressed with Holzner’s example-based approach. I think it would be a very useful book for a beginning JavaScript programmer. However, I dislike the book’s organization. It is fairly easy to follow as a tutorial, but it can be hard to find information if you are looking for a script to copy. For example, the most popular JavaScript script is probably the rollover script (this script changes an image when the mouse is moved over it). In JavaScript: Complete, the rollover script is discussed in a section titled “SwapImage” in the “Keyboard and Mouse Handling” chapter. By comparison, the same information is presented as “Creating Rollovers” in the “Fun with Images” chapter in The JavaScript Visual Quick Start Guide.

Advanced References

ISBN: 0470069163 ISBN: 0596101996 ISBN: 1861001274

JavaScript Bible

At 1,000 pages, Danny Goodman’s JavaScript Bible contains just about everything you could ever want to know about JavaScript. Goodman does a great job of explaining JavaScript’s history and the difference between Java and JavaScript. He also clearly notes which features work in each browser (back to Netscape 2 and IE 3) and points out OS-specific browser problems when they apply. The 606-page language reference itself is probably worth the $50 cover price.

The JavaScript Bible is divided into four main sections and five appendices with a supporting CD-ROM. The first and second sections provide background information and an overview of JavaScript, which Goodman inaccurately calls a “tutorial.” The tutorial is disappointing. It begins with screenshots and short discussions of various JavaScript scripts, then continues with programming fundamentals and a brief explanation of JavaScript’s object model. Unfortunately, Goodman does not include examples, so the “tutorial” lacks context and a sense of purpose. Instead, the examples are provided in section four after the voluminous language reference. The examples are useful but complicated (data entry validation, security, signed scripts, etc.), so the novice user is a little overwhelmed.

Overall, the JavaScript Bible is a great reference, but it is not a great learning tool. I mainly use it to research specific JavaScript objects or to identify browser-specific bugs. For researching JavaScript, it’s invaluable.  

JavaScript: The Definitive Guide

O’Reilly books definitely have a reputation for being high-quality reference guides, and JavaScript: The Definitive Guide is no exception. Its 775 pages (including the index) focus on JavaScript’s event model, syntax, and language. The introduction also provides a very informative overview of the language’s history, features, and limitations.

For the experienced C or Java programmer, JavaScript: The Definitive Guide is a great resource. These users are already familiar with programming conventions and can quickly use the book to learn the differences between JavaScript and other languages. Intermediate and novice users will probably have a difficult time. The few examples that are provided are buried in reference information and are either very complicated (the first example is a loan payment calculator) or esoteric (a Fibonacci number generator). The book also lacks any debugging information, so your are left to your own problem-solving skills (and JavaScript is a very picky language).

Instant JavaScript

Instant JavaScript is takes a completely different approach than other JavaScript books. Rather than being a comprehensive reference or a self-study tutorial, Instant JavaScript focuses on how issues and technologies such as privacy, browser plug-ins, CGI, Java applets, and dynamic HTML relate to JavaScript. I found the chapter on privacy, security, cookies, and security to be very informative and useful. In fact, much of the information contained in the book is not covered in any of the other books mentioned in this review.  

Like other books in the “Instant” series (and most Wrox press books), Instant JavaScript was written by a programmer for an audience of programmers. The JavaScript language is covered only in how it differs from standard programming conventions. A high-level language reference is provided, but it does not compare to the in-depth information provided in the JavaScript Bible. However, Instant JavaScript does explain how to provide context-sensitive Help for a web-based application, how to protect your scripts, how to provided error handling, and how to debug your scripts. After banging my head over the infamous “NaN” data type error (“NaN” stands for “Not a Number” in JavaScriptese), I turned to Instant JavaScript for a quick solution.

Overall, Instant JavaScript is a great reference on obscure topics. If you are already comfortable with JavaScript and own a strong reference guide such as JavaScript Bible or JavaScript: The Definitive Reference, Instant JavaScript would make a great addition to your library. I see Instant JavaScript as kinda like an automobile jack: you might not use it very often, but it can really make a difference when you need it.

Leave a comment

You can use these tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>