Table of Contents
Introduction.
WEEK 1. A SOUND FOUNDATION.
Day 1. Getting the Basics Right.
Introducing JavaScript. JavaScript in Context. Selecting the Right
Technology. JavaScript, Jscript, and ECMAScript. Let's Get Started.
Data Types. Some Useful Tools.
Day 2. Working with Data.
Simple Data Storage. Operators. JavaScript Operators.
Day 3.
Functions and Statements.
User Defined Functions. Predefined Global Functions. What Is a
Statement? Control Statements. Loop Statements.
Day 4. JavaScript
Is Object-Based.
Understanding Objects. Client-Side JavaScript Objects. The document
Object. Environment Objects. Core JavaScript Objects. Exploring an
Object.
Day 5. An Introduction to Arrays.
What Is an Array? Creating an Array. Accessing Arrays. Array
Properties. Array Methods. Associative Arrays. Storing Objects in
Array Elements.
Day 6. HTML Forms and the String Object.
Collecting Data from HTML Forms. Form Elements. The String Object.
Checking User Input.
Day 7. Numbers and Math.
The Number Object. The Math Object. Predefined Properties. Methods
of the Math Object. Creating Your Own Math Functions.
WEEK 2. LET'S TAKE IT FURTHER.
Day 8. The Browser Issue.
Different Browsers, Different JavaScript. Cross-Browser Compatible
Scripting. The W3C DOM.
Day 9. Date and Time
Manipulation.
JavaScript and Dates. The Date Object. Date Formatting. Time
Formatting. Converting Date and Time Formats.
Day 10. Events and
Event Handling.
Understanding Events. Creating an Event Handler. Types of Events.
How to Handle Events.
Day 11. Dynamic HTML.
What is DHTML? Using Cascading Style Sheets. Working with Layers.
Changing Attributes of an HTML Element. Moving Things
Day 12.
Windows and Frames.
What Are Windows and Frames? Determining Window Location. Working
with Window History. Working with the Status Line. Using the Screen
Object. Working with Frames. Working with Popups.
Day 13. Regular
Expressions Make It Easier.
Why Regular Expressions Are Useful. What Is a Regular Expression?
Some Simple Patterns. Regular Expressions Overview. Defining
Regular Expressions. Quantifiers. The Methods of the RegExp Object.
The Properties of the RegExp Object.
Day 14. Advanced Array
Management.
The Array Object's Methods. Multidimensional Arrays.
WEEK 3. ADVANCED TOPICS.
Day 15. Debugging and Error Handling.
Preventing and Classifying JavaScript Errors. Finding Syntax
Errors. Debugging Load-Time Errors. Debugging Run-Time Errors I:
Discrete Events. Debugging Run-Time Errors II: Continuous Events.
Advanced Debugging Techniques. Using JavaScript Debuggers.
Day
16. Cookies: Storing Persistent Data.
Maintaining State. Cookies: An Introduction. Using Cookies. Other
State Maintenance Options.
Day 17. Privacy and Security.
Privacy for Web Users. Privacy for Webmasters. Privacy Impact on
JavaScript.
Day 18. Plugins and Applets.
Plugins Versus Applets. Detecting Plugin Installation. Working with
Plugin Objects. Working with Applets.
Day 19. Creating Your Own
Objects.
What Is a Custom Object? Use of the Constructor to Create Objects.
Creating an Instance of a Custom Object. Creating Object Methods.
Linking Objects Together.
Day 20. JavaScript in
E-Commerce.
Requirements for an E-Commerce Site. Shop Structure. The Online
Catalog. Shopping Carts.
Day 21. JavaScript and SVG.
Overview of Scalable Vector Graphics. Example SVG Code. The SVG
Document Object Model. Using JavaScript in SVG. JavaScript Beyond
Declarative Animation. Interaction Between the HTML and SVG DOM.
Finding Out More About SVG.
APPENDIXES.
Appendix A. New Features in JavaScript 1.5.
Number Formatting Additions. Runtime Error Messages. Regular
Expressions. Conditional Function Declarations. Functions Can Be
Declared Within an Expression. Multiple Catch Clauses.
Appendix
B. Color Codes.
Color Names Specified as Plain-Language. Hexadecimal Color Value.
RGB Color Values.
Appendix C. Functions Reference.
abs(). acos(). asin(). atan(). atan2(). atob(). Boolean(). btoa().
captureEvents(). catch(). ceil(). cos(). Date(). decodeURI().
decodeURIComponent(). encodeURI(). encodeURIComponent(). Error().
escape(). eval(). exp(). floor(). Function(). GetObject().
handleEvent(). isFinite(). isNaN(). log(). max(). min(). Number().
Object(). parseFloat(). parseInt(). pow(). random().
releaseEvents(). rgb(). round(). routeEvents(). ScriptEngine().
sin(). sqrt(). tan(). toString(). unescape(). unwatch().
watch().
Appendix D. Resources Online.
JavaScript. Java and Java Applets. HTML. CGI.
Appendix E. A Short
History of JavaScript.
Index.Promotional Information
The aim of Sams Teach Yourself JavaScript in 21 Days is to tutor
the Web-literate novice JavaScripter through to a high level of
competency in applying JavaScript to Web pages. In addition to core
uses of client-side JavaScript, Sams Teach Yourself JavaScript in
21 Days also covers emerging topics such as the use of JavaScript
with PDFs and the scripting of Scalable Vector Graphics (SVG). The
key principles taught throughout the book are backed up with clear
and useful examples. This enables the reader to easily apply what
they've learned with confidence in order to meet their own coding
needs.
About the Author
Andrew Watt is an independent consultant and author with
expertise in XML and Web technologies including SVG. He is author
of Designing SVG Web Graphics (New Riders) and XPath Essentials
(Wiley). He is co-author of XML Schema Essentials (Wiley) and
contributing author to XHTML, XML & Java 2 Platinum Edition (Que),
Professional XSL, Professional XML 2nd Edition, and Professional
XML Meta Data (Wrox).
Jonathan Watt has been working with JavaScript for two
years and has been Webmaster of the Strathclyde University Skills
Society Web site, as well as a number of his own Web sites such as
dsvg.com. His primary expertise is in the application of JavaScript
in the client-side environment, but he also has used ASP and PHP to
create database-driven Web sites. He is currently in the third year
of a master's degree in engineering at Strathclyde.
Jinjer Simon has been actively involved in the computer
industry for the past 17 years. Her involvement in the industry has
included programming, providing software technical support,
end-user training, developing written and online user
documentation, creating software tutorials, developing Internet Web
sites, and writing technical books. Jinjer and her husband
currently live in Coppell, Texas, with their two children where she
currently works as a consultant for MillenniSoft Inc. by providing
Web site development and online documentation development.
Jim O'Donnell was born on October 17, 1963, in
Pittsburgh, Pennsylvania (you may forward birthday greetings to
jim@odonnell.org). After a number of unproductive years, he went to
Rensselaer Polytechnic Institute for 11 years earning three
degrees. He now lives in Washington, DC, and spends most of his
time building spacecraft. He has been writing and editing books for
eight years. When he isn't working, he collects comic books and PEZ
dispensers and plays ice hockey for the DC Nationals. Go, Nats!