Introduction
About This Book
What You'll Need
About the Author
Getting Support
Part 1: Getting Started
Chapter 1: (Re-)Introducing JavaScript
What is JavaScript?
JavaScript Versions and Browser Support
JavaScript Programming Goals
Chapter 2: JavaScript in Action
Choosing a DOCTYPE
Introducing HTML5
Embedding JavaScript in HTML
JavaScript Approaches
Cobbling Together Some Code
A Framework Approach
Steal This JavaScript
Chapter 3: Tools of the Trade
The Great Debate: Text Editors vs. IDEs
The Browser: Your Friend, Your Enemy
Executing JavaScript
Debugging Fundamentals
Online Resources
Part 2: JavaScript Fundamentals
Chapter 4: Simple Variable Types
Basic Variable Syntax
Common Operators
Working with Numbers
Working with Strings
Other Simple Types
Performing Type Conversions
Generating Dates and Times
Chapter 5: Using Control Structures
Conditionals
What is true?
Logical Operators
Comparison Operators
Preventing Bugs
Performing Iterations
Chapter 6: Complex Variable Types
Working with Arrays
Working with Objects
Arrays as Objects
Comparing Types
Chapter 7: Creating Functions
Defining Your Own Functions
Passing Values to Functions
Returning Values from Functions
Understanding Variable Scope
Anonymous Functions
Nested Functions
Functions Acting as Classes
Function Prototypes
Nested Functions
Chapter 8: Event Handling
Event Phases
Browser Events
Keyboard Events
Input Device Events
Accessible Events
Assigning Event Handlers
Creating an Event Assigner
Referencing the Event
Preventing Default Event Behavior
Chapter 9: JavaScript and the Browser
DOM Manipulation
JavaScript and CSS
Alerts and Prompts
The Window
Chapter 10: Working with Forms
Handling Form Submissions
Form Validation
Using Regular Expressions
Handling File Uploads
Chapter 11: Ajax
Understanding Ajax
Providing Dynamic Content
Form Validation
Ajax Performance Tips
Working with Other Data
Chapter 12: Error Management
Simple Debugging Errors
Handling Problems Gracefully
Creating Informative Errors
Creating Useful Errors
Throwing Exceptions
Part 3: Next Steps
Chapter 13: Frameworks
Choosing a Framework
Introducing jQuery
Introducing ExtJS
Introducing YUI
Chapter 14: Advanced JavaScript
Unit Testing
Profiling
Closures
Prototypes
Namespaces
Minifying
Chapter 15: Putting It All Together