There are so many reasons for learning JavaScript that you need books that cover a range of approaches and levels. What about "in easy steps"? Can plain English convey JavaScript to the beginner?

This is a book that is aimed at the beginner. It is full of colorful text and it is slim and unintimadating. It oozes a desire to be simple and friendly, but it also matters what the book tries to convey and how it does it.

JavaScript is a difficult programming language for the beginner because of the way that is so intertwined with HTML. In this case you most certainly have to know some HTML and the basic ideas of web technology to get very far. There is no clue as to how to get of the ground with a web page you are immediately thrown into putting JavaScript into pages without any consideration of what editor or IDE to use. Actually creating web pages is your problem.

The book also opens with a list of JavaScript keywords and the warning not to use them for your own names. Which is fine except we haven't even got to the point where variables have been introduced so it's all a bit vague and confusing. Next we study the mechanics of including script in the page and then move on to consider variables. Then, functions are sort of introduced - I say "sort of" because the section is headed "Passing function arguments" but, as we haven't had a section on functions, this is all a bit rushed. Finally we look at variable scope which isn't exactly a beginner's topic. Everything is explained simply and plainly but the order in which things are introduced makes it harder for a beginner to grasp the bigger picture.

The next step moves on to operations and we have lightning looks as arithmetic, assignment, logic, conditionals and operator precedence. It isn't until step 3 we reach the bit that most beginners find really difficult i.e. flow of control. In this short section we have all of the control statements - if, if else, switch, for, while, do while and breaking out of loops. If you have never programmed before this is a tough section that is going to need reading more than once.

From here we make the acquaintance of objects in Section 4. However, this is not a basic introduction to the object literal, but straight into the constructor approach. The next few sections deal with built-in objects - date, strings and numbers. If you want to master JavaScript this isn't enough of an introduction, but it at least shows you how to get some common things done.

The remainder of the book moves off the topic of learning JavaScript and more onto the topic of using it. Section 7 introduces the DOM, and the window object in particular. Sections 8, 9 and 10 explain how to work with the DOM, events and forms. Section 11 explains some aspects of dynamic effects - changing the DOM to create animation, etc.

Section 12 is about creating web apps, but really it only introduces the idea of Ajax. The final section is called Scripting Magic and it consists of a collection of more advanced and impressive topics such a canvas, SVG and so on.

This isn't a book that is going to get you from a JavaScript beginner to even a reasonably competent programmer. It is far too much concerned with showing you how to get particular jobs done without giving you the bigger picture. However, to give the bigger picture would need far more pages than this book has or it would need a much more restricted range of topics. For example, there isn't much point in covering Ajax at the level it is covered at and the same goes for the exciting ideas of canvas and SVG. Much better to take the pace slower and stay with core JavaScript.

The book's main focus is on using JavaScript to add a bit of sophistication to a web page rather then the creation of web apps and as such it really doesn't need to go beyond the core ideas.

If you already program then this book isn't going to help you learn modern, object-oriented JavaScript. If you don't already program then it might get you started adding some simple scripts to web pages, but you are going to have to work hard to learn the bigger ideas.

It is cheap, very cheerful and colorful - but modern JavaScript it isn't.