, 2nd Edition,
provides a developer-level introduction along with the more
originated and evolved into what it is today. A detailed discussion
with specific focus on standards such as ECMAScript and the
implementations used in different popular web browsers are also
Building on that base, the book moves on to cover basic concepts
inheritance, and its use in various markup languages such as HTML.
An in-depth examination of events and event handling is followed by
an exploration of browser detection techniques and a guide to using
knowledge and applies it to creating dynamic user interfaces.
The last part of the book is focused on advanced topics,
including performance/memory optimization, best practices, and a
This book is aimed at three groups of readers:
- Experienced developers familiar with object-oriented
traditional OO languages such as Java and C++
- Web application developers attempting to enhance the usability
of their web sites and web applications
In addition, familiarity with the following related technologies
is a strong indicator that this book is for you:
This book is not aimed at beginners who lack a basic computer
science background or those looking to add some simple user
interactions to web sites. These readers should instead refer to
This book covers:
today. Concepts introduced include the relationship between
Browser Object Model (BOM). A discussion of the relevant standards
from the European Computer Manufacturer’s Association (ECMA)
and the World Wide Web Consortium (W3C) is also included.
in conjunction with HTML to create dynamic web pages. Introduces
relationship to the element.
- Language Basics—Introduces basic language
concepts, including syntax and flow control statements. Explains
languages and points out the differences. Type coercion is
introduced as it relates to built-in operators.
- Variables, Scope, and Memory—Explores how
nature. A discussion about the differences between primitive and
reference values is included, as is information about execution
context as it relates to variables. Also, a discussion about
when variables go out of scope.
- Reference Types—Covers all of the details
Object and Array. Each reference type described in
ECMA-262 is discussed both in theory and how they relate to browser
- Object-Oriented Programming—Explains how to use
concept of classes, several popular techniques are explored for
object creation and inheritance. Also covered is the concept of
function prototypes and how that relates to an overall OO
- Anonymous Functions—Explores one of the most
closures, how the this object works, the module pattern, and
creating private object members.
- The Browser Object Model—Introduces the Browser
Object Model (BOM), which is responsible for objects allowing
interaction with the browser itself. Each of the BOM objects is
covered, including window, document, location,
navigator, and screen.
- Client Detection—Explains various approaches to
detecting the client machine and its capabilities. Different
techniques include capability detection and user-agent string
detection. Each approach is discussed for pros and cons as well as
- The Document Object Model—Introduces the Document
DOM Level 1. A brief introduction to XML and its relationship to
the DOM gives way to an in-depth exploration of the entire DOM and
how it allows developers to manipulate a page.
- DOM Levels 2 and 3 Explains how DOM Levels 2 and 3
augmented the DOM with additional properties, methods, and objects.
Compatibility issues between Internet Explorer and other browsers
- Events—Explains the nature of events in
redefined how events should work. A variety of devices are covered,
including the Wii and iPhone.
enhance form interactions and work around browser limitations.
Discussion focuses on individual form elements such as text boxes
and select boxes and on data validation and manipulation.
- Error Handling and Debugging—Discusses how
to handle errors. Debugging tools and techniques are also discussed
for each browser, including recommendations for simplifying the
(XML) data. Explains the differences in support and objects in
various web browsers, and offers suggestions for easier
cross-browser coding. This also covers the use of eXtensible
Stylesheet Language Transformations (XSLT) to transform XML data on
- ECMAScript for XML—Discusses the ECMAScript for
working with XML. Explains the advantages of E4X over using the DOM
for XML manipulation.
- Ajax and JSON—Looks at common Ajax techniques,
including the use of the XMLHttpRequest object and Internet
Explorer's XDomainRequest object for cross-domain Ajax.
Explains the differences in browser implementations and support as
well as recommendations for usage.
- Advanced Techniques—Dives into some of the more
function application, and dynamic functions. Also covers creating a
custom event framework to enable simple event support for custom
- Client-Side Storage—Discusses the various
techniques for storing data on the client machine. Begins with a
discussion of the most commonly supported feature, cookies, and
then discusses newer functionality such as DOM storage.
- Best Practices—Explores approaches to working with
maintainability are discussed, including coding techniques,
formatting, and general programming practices. Execution
performance is discussed and several techniques for speed
optimization are introduced. Last, deployment issues are discussed,
including how to create a build process.
- Upcoming APIs—Introduces APIs being created to
yet complete or fully implemented, they are on the horizon and
browsers have already begun partially implementing their features.
Includes the Selectors API and HTML 5.
ECMAScript 4, and ECMAScript Harmony are discussed.