BKSTYJVS.RVW 20000521 "Sams Teach Yourself JavaScript 1.3 in 24 Hours", Michael Moncur, 1999, 0-672-31407-X, U$19.99/C$28.95/UK#17.95 %A Michael Moncur tyjs@starlingtech.com %C 201 W. 103rd Street, Indianapolis, IN 46290 %D 1999 %G 0-672-31407-X %I Macmillan Computer Publishing (MCP) %O U$19.99/C$28.95/UK#17.95 800-858-7674 317-581-3743 info@mcp.com %P 364 p. %T "Sams Teach Yourself JavaScript 1.3 in 24 Hours" The "24 Hours" conceit of the title must put severe constraints on an author. You have an absolute bound on the number of chapters, and each has to be simple enough to be absorbed in an hour. Hemmed in by those limitations, this book cannot be exhaustive, in terms of a reference to the language, but Moncur does an excellent job within those restrictions, and has produced a very serviceable and useful introduction to JavaScript. Part one addresses getting started. Chapter one gets off to a bit of a rocky start with several errors. The first HTML (HyperText Markup Language) specification did make provision for graphics, it was the browsers that didn't. The book says that JavaScript was renamed from LiveScript to reflect its relationship to Java, and then points out that there is no such relationship. A note refers to a title that it doesn't have, pointing out some careless editing. Moncur also says that scripts in headers are not executed immediately, which is wrong. The chapter does end with a simple beginner script that will print out a message. This is expanded, in chapter two, to a simple script with some calculations. The book starts to hit its stride with a decent discussion of JavaScript uses and a status bar message script in chapter three. Chapter four jumps the gun a bit by introducing the major concepts of functions, objects, and events, but not in any useful fashion. It also belittles concerns about JavaScript security. Part two gets into JavaScript basics. Chapter five is a fundamental introduction to variables. There is good material on strings in chapter six, but it doesn't do as well on arrays, insisting first that an array has to be declared before it can be used, and then following up with a script that uses an undeclared array. Logical operators and the if/else construction are described in chapter seven. Various loops are examined in chapter eight. Part three starts to move into advanced features. Chapter nine starts to point out the weakness of the "hour" model as it can't say much about string and array objects, mostly concentrating on Math methods. The discussion of browser objects skims over most and only really uses windows history in chapter ten. Creating custom objects is a very complex topic, and chapter eleven leaves a great many questions unanswered. Chapter twelve reviews a number of events, but focuses on a message in the status bar (again). The scope of events is not always clear. Part four turns to Web pages. Chapter thirteen deals with windows and frames, and presents a couple of buttons, but also fails to make a clear distinction between the JavaScript code and HTML. This same mixup happens in the otherwise good introduction to forms, in chapter fourteen. There is good, basic graphical stuff in chapter fifteen, with simple image maps, rollover, and even an easy animation. Chapter sixteen looks at different browsers, and has some cute tricks for dealing with non-JavaScript browsers. Part five gets into advanced Web features. Chapter seventeen has a decent introduction to style sheets, although, ironically, it is not as good in dealing with JavaScript as in plain HTML. The discussion of layers, in chapter eighteen, does not address all attributes, but integrates JavaScript better. Chapter nineteen has some good, but terse, tips about cross-browser compatibility. There is a quick run over multimedia plugins, and a little piano program, in chapter twenty. Part six puts it all together. Chapter twenty one has good debugging tips, and a very useful tip for bringing up error messages in Netscape. A number of the topics are included in a sample Web page done up in chapter twenty two, although it isn't necessarily very functional. Chapter twenty three puts together a shopping cart script. The book finishes off with a card game in chapter twenty four. Despite the rough start, and a disappointing ending with a rather resourceless set of appendices, the book is a good introduction for those who would like to get going with JavaScript programming. The book does make a number of errors, but these are not the type that will stop someone willing to do a little experimentation. Once into the language you will definitely need another reference, but this work will allow you to get in quickly, and start to see the possibilities. copyright Robert M. Slade, 2000 BKSTYJVS.RVW 20000521