si-blog

JavaScript book recommendation

Posted Feb 04, 2004 in JavaScript.

Client-side scripting is largely a mystery to me. When I started making web documents in XHTML and CSS just over two years ago, I found them to be so powerful and flexible that I ignored client-side behaviors altogether. Anything more complex than an event handler is beyond me.

But with the welcome news that users of old browsers like Netscape 4.x are finally the insignificant minority, I feel that client-side scripting may be on the cusp of a little renaissance.

It is time, therefore, for me to learn JavaScript. I have no desire to learn anything proprietary, nor am I interested in writing JavaScript that supports ancient browsers. I would like to learn standards compliant, and where possible, cross compatible client-side scripting.

Since I almost exclusively use XHTML, I would like to find a book that will help the novice to learn client-side scripting, and the manipulation of the DOM. Can anyone recommend a good publication?

Comments

  1. Gravatar

    "Javascript: The Definitive Guide" does exactly what it says on the tin. There are two distinct parts to learning Javascript: picking up the language and learning how to apply it to the browser's document object. The language itself is actually far more subtle and interesting than most people give it credit, and developing a solid understanding of it can really help when you apply it to the real world. The Definitive Guide has hands down the best coverage of the language I've seen anywhere.

    As for the actual browser side of things, JS:TDG does a better job of this than most. In actual fact though people are still adapting to the new world of browsers that more-or-less support standards for the DOM and I have yet to see a book with really excellent coverage of modern scripting techniques. In the meantime though JS:TDG provides a good start and websites such as the excellent www.quirksmode.org help fill in the rest.

    Posted by Simon Willison on Feb 04, 2004.

  2. Gravatar

    I have to second Simon's recommendation, JS:TDG is the best I've read. It improved quite a bit between the third and fourth editions, dropping a lot of cruft, reorganising and focussing more on standards, so don't be tempted to pick up a cheap second-hand copy.

    Posted by Jim Dabell on Feb 04, 2004.

  3. Gravatar

    When two web folk who are obviously more talented than I recommend the same book, who am I to argue? I will indeed purchase "JavaScript: The Definitive Guide". I currently have two "learning" books, and I don't like either of them.

    Posted by Simon Jessey on Feb 04, 2004.

  4. Gravatar

    I started picking up javascript recently for similar reasons. Another thing that pushed me towards this decision was the realization that 29% of the space of the Mozilla 1.3b zip file is javascript (from http://paperlined.org/mozilla/interesting_shtuff.html). In other words, javascript is a complex and complete enough language that a very significant chunk of Mozzila's functionality and flexibility is based on it.

    As Simon said, there's really two parts to learning client-side javascript coding. Javascript is complete enough to do object instantiation, inheritance, etc etc... So it takes a little time to learn that. Included in this part of JS is the libraries that come with Javascript even if you used it outside of the browser (eg. the String object and its manipualations, the Date object, etc).

    And then there's DOM, or the browser-specific portion of the Javascript libraries. I haven't bought JS:TDG yet, but at least for the DOM part, there seems to be a fair bit of information available on the web. (eg. http://www.mozilla.org/docs/dom/domref/)

    Also, if you're looking for industrial-strength examples (eg. objects and the like), as I mentioned, Mozilla has a ton of them to study. If you have Mozilla installed, find the chrome directory, and use WinZip or something on the .jar files to see the available source code, or it's browsable online (eg. http://lxr.mozilla.org/mozilla/source/browser/base/content/).

    Posted by David Newcum on Feb 05, 2004.