contents

preface
acknowledgments
about this book
about the authors

Part 1 Preparing for training

Chapter 1 Enter the ninja
The JavaScript libraries we’ll be tapping
Understanding the JavaScript language
Cross-browser considerations
Current best practices
Summary
Chapter 2 Arming with testing and debugging
Debugging code
Test generation
Testing frameworks
The fundamentals of a test suite
Summary

Part 2 Apprentice training

Chapter 3 Functions are fundamental
What’s with the functional difference?
Declarations
Invocations
Summary
Chapter 4 Wielding functions
Anonymous functions
Recursion
Fun with function as objects
Variable-length argument lists
Checking for functions
Summary
Chapter 5 Closing in on closures
How closures work
Putting closures to work
Binding function contexts
Partially applying functions
Overriding function behavior
Immediate functions
Summary
Chapter 6 Object-orientation with prototypes
Instantiation and prototypes
The gotchas!
Writing class-like code
Summary
Chapter 7 Wrangling regular expressions
Why regular expressions rock
A regular expression refresher
Compiling regular expressions
Capturing matching segments
Replacing using functions
Solving common problems with regular expressions
Summary
Chapter 8 Taming threads and timers
How timers and threading work
Minimum timer delay and reliability
Dealing with computationally expensive processing
Central timer control
Asynchronous testing
Summary

Part 3 Ninja training

Chapter 9 Ninja alchemy: runtime code evaluation
Code evaluation mechanisms
Function “decompilation”
Code evaluation in action
Summary
Chapter 10 With statements
What’s with “with”?
Real-world examples
Importing namespaced code
Testing
Templating with “with”
Summary
Chapter 11 Developing cross-browser strategies
Choosing which browsers to support
The five major development concerns
Implementation strategies
Reducing assumptions
Summary
Chapter 12 Cutting through attributes, properties, and CSS
DOM attributes and properties
Cross-browser attribute issues
Styling attribute headaches
Fetching computed styles
Summary

Part 4 Master training

Chapter 13 Surviving events
Binding and unbinding event handlers
The Event object
Handler management
Triggering events
Bubbling and delegation
The document ready event
Summary
Chapter 14 Manipulating the DOM
Injecting HTML into the DOM
Cloning elements
Removing elements
Text contents
Summary
Chapter 15 CSS selector engines
The W3C Selectors API
Using XPath to find elements
The pure-DOM implementation
Summary

          index