Learn more Shop now Learn more Shop now Shop now Shop now Shop now Shop now Shop now Shop now Shop now Shop now Learn More Shop now Learn more Click Here Shop Kindle Amazon Music Unlimited for Family Shop now Shop Now

Customer reviews

3.5 out of 5 stars
3.5 out of 5 stars
Learning JavaScript: Add Sparkle and Life to Your Web Pages
Format: Paperback|Change
Price:£23.50+ Free shipping with Amazon Prime

on 10 November 2006
As an introduction to javascript, this book covers all the ground you'd hope it would. It introduces JS in the context of a standalone programming language with its various procedural constructs, before moving onto the Document Object Model and Browser Object Model, touches upon objects, and finds the time to explain Ajax. Finally, there's a whistlestop tour of the commonly used JS libraries like Dojo, Prototype and script.aculo.us. Shelley Powers also sprinkles her opinions on JS best practices throughout, with a bias towards favouring accessibility over whiz-bang flashiness. I would recommend being comfortable with XHTML and CSS as a prerequisite for this book - something like O'Reilly's own Head First XHTML and CSS would be very suitable.

If, like me, you know a few programming languages, but nothing about JS, and wanted a crash course so you could understand what all the fuss about the likes of Ajax or the Google Web Toolkit is, this is just what you need. So why am I only giving it three stars?

First, I thought some of the features weren't very well explained - the writing lacks clarity when describing important points. Compounding this, a few of the examples are poorly chosen. Some of my quibbles may seem picky, but the feel of the book is that it's pitched at an inexperienced programmer, and a lot of the time I only followed the discussion because I was already familiar with the material from other languages. Some particular points follow.

i) Accessing the length of various parts of a multidimensional array is illustrated with:

alert(threedPoints[2][2].length); // prints out 3

alert(threedPoints[2].length); // prints out 3

alert(threedPoints.legnth); // prints out 3

ignoring the error on the third line (more on that later), as can be seen from the comments, a three dimensional array has been created where every dimension is of length 3 - surely making them of unequal size would have been more illustrative.

ii) The example of the associative array manages to be even worse:

assocArray["one"] = "one";

assocArray["two"] = "two";

I struggle to think of an example that could be more misleading.

iii) While the author recognises the importance of regular expressions, and goes into reasonable detail, the material is not terribly well organised, and the examples become complicated too quickly.

iv) The section of chained constructors, and the use of call and apply is also unclear - disappointing, given I was most interested in the prototype style of object creation that JS uses.

v) The callback functions of Array are not well described. The function Filter, apparently, "ensures that elements are not added to any element unless they pass certain criteria". So, elements are not added to any element - huh? wha? Those familiar with the likes of Lisp, Python, and especially the iterators in Smalltalk and Ruby will be able to pick up what's going on, but newcomers may be baffled.

vi) The attempt to explain recursion is weak. Admittedly, most programming books do a bad job, but what's here is far too short to be useful. An illustrative quote is: "think of each iteration of the function call as pushing the string and numeric sum onto a stack, and when the numeric array has been traversed, the string and number have to be popped up through the stack to the top". I'm not saying this is wrong, but I do not believe that someone who's just been introduced to recursion would find this description helpful.

vii) Not all the programs have their output shown. This wouldn't be easy for some of the more complicated examples, but a lot of them are text-based.

Second, there are lots and lots of typos in the book. When even a JS noob such as myself spots them, you know there's something up. Fortunately, they're only minor, and they generally aren't sufficiently bad to mislead. As an example, when function literals are introduced, the rather vital keyword 'function' is missing, but the examples quickly clarify the matter. However, elsewhere, some of the code won't actually run as presented (as early as the second example, alas), and it does take the shine off the production. Either the technical reviewers were asleep, or the editors at O'Reilly ignored them. Someone ought to be embarrassed, at any rate.

None of these things are sufficiently show-stopping for someone who knows a little programming, so I would still recommend this book before wrestling with enormous tomes like David Flanagan's JavaScript - The Essential Guide, or a dedicated Ajax book. Complete beginners and the inexperienced, however, should look elsewhere, I'm afraid.
0Comment| 16 people found this helpful. Was this review helpful to you?YesNoReport abuse
on 18 August 2010
I bought the book a while ago because I wanted to learn JavaScript. The book is good for beginners, or those who want to revise the very basics, but that is all I feel it is good for.

The book goes in to lots of detail, and explains each line of code with a bit of background history here and there. It will reference previous chapters when you move on through the book, just to give you a reminder, and also tells you that it will go on to explain more later in the book.

Overall, I think its great for starting out. You may need to read the book through a few times though, and keep jumping back to re-read previous chapters.
0Comment| One person found this helpful. Was this review helpful to you?YesNoReport abuse
on 15 March 2013
I must say that I have no idea what the author is on about half the time.

Poorly laid out and evenly more poorly written. She has set about writing this book with a truly scatter gun approach, delving into areas with what sometimes feels like the sole intention of confusing the reader.

In the authors defence I am an absolute newbie at Javascript so some confusion should be expected. I am now working my way through the book slowly writing down the important bits in order to piece it all together into something that makes sense.

No doubt I will buying another book on this subject. If anybody can suggest a text that introduces the key concepts with brevity and in clear English please, please, please let me know!!!
11 Comment|Was this review helpful to you?YesNoReport abuse
on 27 February 2009
I was very pleased with this book. It arrived promptly and was in very good condition.
0Comment|Was this review helpful to you?YesNoReport abuse

Customers also viewed these items

Need customer service? Click here

Sponsored Links

  (What is this?)