Product Overview

The Art & Science of JavaScript

Index

A

aIdx variable, (Performing the Sort)
Ajax
client-side badges, (The Problem with Ajax)
alpha variable, (Performing the Sort)
anchors
sorting tables, (Making the Sort Functionality Accessible)
anonymous functions, (Functions Are Objects)
Application Programming Interfaces (API), (Summary)
(see also Flickr API; Google Maps API)
canvas element, (The canvas API)
defined, (APIs, Mashups, and Widgets! Oh, My!)
del.icio.us, (Introducing the Example Badge)
using dynamic functions, (Better APIs through Dynamic Functions)
arcs
drawing with canvas element, (Creating Paths)
pie chart segments, (Determining the Dimensions of a Segment)
arguments
default, (Creating Functions with Default Arguments)
arguments array
about, (Understanding the arguments Array)
arrow keys
alternatives to, (Accessible Dragging)
aspect-oriented programming, (Aspect-oriented Programming on a Shoestring)
assertions
Firebug, (Monitoring, Logging, and Executing with the Console)
auto-completion
Firebug, (Monitoring, Logging, and Executing with the Console)
avatar images, (Summary)
(see also thumbnails)
badges, (Performance Issues)

B

backup
servers, (Calling for Server Backup)
badges, (Summary)
(see also client-side badges; server-side badges)
about, (Badges—an Introduction)
defined, (Creating Client-side Badges)
behavior classes
defining, (Creating Dynamic Constructors)
Bézier curves
drawing with canvas element, (Bézier Curves)
blacklisting
Firebug, (Enabling and Disabling Firebug)
blogs
badges, (Server-side Badges)
bookmarklets
Firebug, (Monitoring, Logging, and Executing with the Console)
branching
functions, (Creating Self-optimizing Functions)
breakpoints (see conditional breakpoints)
browsers
onmousedown event handler, (The onmousedown Event Handler)
ternary operators, (Parsing the Content)
XPath support, (Creating Self-optimizing Functions)
bubble sort
tables, (Implementing a Bubble Sort)
built-in functions
using, (Working with Built-ins)
built-in objects
adding methods to, (Working with Built-ins)

C

callbacks
creating mazes with CSS and JavaScript, (Further Developments)
callee property
storing values between function calls, (Using callee to Store Properties Between Function Calls)
canvas element, (Vector Graphics with canvas)
about, (Vector Graphics with canvas)
creating pie charts, (Creating a Pie Chart)
creating vector graphics, (Working with canvas)
Internet Explore browser, (canvas in Internet Explorer)
captions
adding to maze view, (Adding Captions)
cellIndex variable, (Performing the Sort)
centering
maps, (Recentering the Map)
charts (see pie charts)
circles
drawing with canvas element, (Creating Paths)
class names
tables, (Adding Some Class)
classes, (Summary)
(see also behavior classes)
in JavaScript, (There Are No Classes in JavaScript)
Prototype 1.6, (Classes in Prototype 1.6)
clearRect method
Opera browser, (Updating the Chart Dynamically)
client-side badges, (Creating Client-side Badges)
about badges, (Badges—an Introduction)
Ajax and JSON, (Client-side Badge Options: Ajax and JSON)
scripting, (Planning the Badge Script)
sever backup, (Calling for Server Backup)
client-side scripting
badges, (Out-of-the-box Badges), (Custom Client-side Badges)
clip code, (Defining the Floor Plan)
closures
about, (Comprehending Closures)
clickable thumbnails, (Creating Clickable Thumbnails)
partial function application, (Partial Function Application)
tables, (Handling Events and Scope Issues)
color
creating in canvas element, (Calculating the Color of a Segment)
columns
in HTML tables, (Anatomy of a Table)
sorting, (Sortable Columns)
conditional breakpoints
Firebug, (Debugging Your Application)
configuration variables
badges, (Defining Configuration Variables)
connections
fallbacks, (Providing a Fallback for Failed Connections)
Console
Firefox, (Monitoring, Logging, and Executing with the Console)
Console view
Firebug, (The Console View)
constructor functions, (Summary)
(see also dynamic constructors)
about, (There Are No Classes in JavaScript)
new operator, (Detecting whether a Function Was Called with new)
controls (see map controls)
cross-domain JSON
on demand, (Cross-domain JSON on Demand)
same-origin restriction, (The Same-origin Restriction)
cross-linking
within Firebug, (Switching Views)
cross-site scripting (XSS) attacks
cross-domain JSON, (Enabling Cross-domain JSON)
eval function, (The Module Pattern)
CSS
building mazes, (Building a 3D Maze with CSS and JavaScript)
info windows, (Displaying an Info Window)
stretching dimensions of canvas objects, (Creating Rectangles)
CSS styles
out-of-the-box badges, (Out-of-the-box Badges)
CSS view
Firebug, (The CSS View)
cubic curves
drawing using canvas element, (Bézier Curves)
curves
drawing with canvas element, (Creating Paths)

D

data (see profile data)
default arguments
creating functions, (Creating Functions with Default Arguments)
del.icio.us social bookmarking site
badge example, (Introducing the Example Badge)
dimensions
canvas elements, (Creating Rectangles)
pie chart segments, (Determining the Dimensions of a Segment)
Document Object Model (DOM)
about, (Accessing Table Elements with getElementById)
DOM Builder, (Better APIs through Dynamic Functions)
DOM methods
info windows, (Displaying an Info Window)
DOM subview
Firebug, (Viewing and Editing On the Fly)
DOM tree
accessing table elements, (Accessing Table Elements with getElementById)
DOM view
Firebug, (The DOM View)
domain-specific languages (DSL), (Implementing Domain-specific Languages)
dragging
columns, (Creating Draggable Columns)
dynamic class creation
JavaScript equivalent, (Creating Dynamic Constructors)
dynamic constructors
creating, (Creating Dynamic Constructors)
dynamic functions
APIs, (Better APIs through Dynamic Functions)
dynamic view
creating mazes with CSS and JavaScript, (Making a Dynamic View)

E

elements
inspecting with Firebug, (Switching Views)
error console
Firefox and Firebug, (The Console View)
errors
Firebug, (Monitoring, Logging, and Executing with the Console)
eval function
cross-site scripting (XSS), (The Module Pattern)
security, (JSON)
event objects
badges, (Defining Private Methods)
events
assigning, (Adding Some Class)
handling, (Handling Events and Scope Issues), (Event Handling)
excanvas.js file, (canvas in Internet Explorer)
exceptions
creating mazes with CSS and JavaScript, (Adding Captions)
executing
with Console, (Monitoring, Logging, and Executing with the Console)
ExplorerCanvas, (canvas in Internet Explorer)
extensions
canvas element and HTML, (Working with canvas)
Firefox, (Other Firefox Extensions)

F

fallbacks
badges, (Providing a Fallback for Failed Connections)
feeds (see Flickr feeds)
Firebug, (Debugging and Profiling with Firebug)
components of, (The Many Faces of Firebug)
enabling and disabling, (Enabling and Disabling Firebug)
getting started, (First Steps with Firebug)
installing, (Installing Firefox and Firebug)
using, (Using Firebug)
Firebug Lite
about, (Firebug Lite)
Firefox browser
extensions, (Other Firefox Extensions)
Firebug addon, (Metaprogramming with JavaScript)
rendering canvas element, (Initializing the Page)
Firefox error console, (The Console View)
Flash
animation, (Vector Graphics with canvas)
Flickr API
data ownership policy, (Getting at the Data)
geotagging photos, (Geotagging Photos)
origin of, (Flickr and Google Maps)
web resources for, (Taking Things Further)
Flickr feeds
RSS and Atom, (Flickr Feeds)
floor plans
creating mazes with CSS and JavaScript, (Defining the Floor Plan), (Designing a Floor Plan)
for-in loop, (Finding and Iterating through Properties in an Object)
function calls
storing between function calls, (Using callee to Store Properties Between Function Calls)
function factories
clickable thumbnails, (Creating Clickable Thumbnails)
functions, (Summary)
(see also anonymous functions; built-in functions; constructor functions; dynamic functions; eval function; global functions; lazy function evaluation; partial function application; self-executing function patterns; self-optimizing functions; wrapper functions)
creating, (Functions Are Objects)
default arguments, (Creating Functions with Default Arguments)
as objects, (Functions Are Objects)

G

geotagging
photos, (Geotagging Photos)
getElementById
accessing table elements, (Accessing Table Elements with getElementById)
global functions
closure, (What is a Closure?)
global variables, (Pulling it All Together)
globalCompositeOperation property
Opera browser, (Updating the Chart Dynamically)
values, (Casting a Shadow)
Google maps
creating from Fickr photos, (Pulling it All Together)
Google Maps API
info windows, (Displaying an Info Window)
origin of, (Flickr and Google Maps)
web resources for, (Taking Things Further)
GPS
geotagging photos, (Geotagging Photos)
graphics, (Summary)
(see also avatar images; Flickr API; photos; thumbnails; vector graphics)
badges, (Performance Issues)
graphics context
canvas API, (The canvas API)

H

handlebars
Bézier curves, (Bézier Curves)
hCalendar microformat, (Implementing Domain-specific Languages)
hCard specification
implied n optimization, (Implementing Domain-specific Languages)
heading states
tables, (Managing Heading States)
HTML extensions
canvas element, (Working with canvas)
HTML view
Firebug, (The HTML View)
HTTP requests
badges, (Performance Issues)

I

ice cream cone
drawing with canvas element, (Creating Paths)
implied n optimization
hCard specification, (Implementing Domain-specific Languages)
info windows
displaying, (Displaying an Info Window)
Google Maps API, (Drawing a Map)
inheritance
property chain, (There Are No Classes in JavaScript)
initializing
pages in canvas element, (Initializing the Page)
innerHTML property, (Making the Sort Functionality Accessible)
inspect command
Firebug, (Switching Views)
installing
Firebug, (Installing Firefox and Firebug)
instanceof
operator, (Detecting Types)
Internet Explorer browser
canvas element, (canvas in Internet Explorer)
onmousedown event handler, (The onmousedown Event Handler)
introspection
objects, (Finding and Iterating through Properties in an Object)

J

JavaScript Object Notation (JSON)
badge example, (Introducing the Example Badge)
badges, (JSON: the Lightweight Native Data Format), (Defining Private Methods)
creating Google maps, (Pulling it All Together)
handling photos, (JSON)
JSON-P (JSON with Padding) (see cross-domain JSON)

K

keys (see arrow keys)

L

Layout subview
Firebug, (Viewing and Editing On the Fly)
lazy function evaluation, (Creating Self-optimizing Functions)
libraries, (Summary)
(see also Prototype library)
self-executing function patterns, (The Self-executing Function Pattern)
log messages
retaining type in, (Monitoring, Logging, and Executing with the Console)
logging
with Console, (Monitoring, Logging, and Executing with the Console)

M

map controls
adding, (Adding Map Controls)
map view
of mazes, (Creating the Map View)
maps
recentering, (Recentering the Map)
mashups, (Summary)
(see also Flickr API; Google Maps API)
defined, (APIs, Mashups, and Widgets! Oh, My!)
origin of, (Flickr and Google Maps)
mazes
building with CSS and JavaScript, (Building a 3D Maze with CSS and JavaScript)
metaprogramming, (Metaprogramming with JavaScript)
defined, (Metaprogramming with JavaScript)
overview, (The Building Blocks)
techniques, (Metaprogramming Techniques)
methods, (Summary)
(see also private methods; public methods)
adding to built-in objects, (Working with Built-ins)
mixing in, (Simulating Traditional Object Orientation)
stealing for other objects, (Understanding the arguments Array)
microformats, (Implementing Domain-specific Languages)
Microsoft debugging tools, (Microsoft Tools)
mixing in
methods, (Simulating Traditional Object Orientation)
module pattern
about, (The Module Pattern)
scripting, (Planning the Badge Script)
monitoring
with Console, (Monitoring, Logging, and Executing with the Console)
mouse
dragging columns without, (Dragging Columns without a Mouse)

N

names
classes, (Adding Some Class)
Net view
Firebug, (The Net View)
new operator
constructor functions, (Detecting whether a Function Was Called with new)
nIdx variable, (Performing the Sort)
nodes
in DOM tree, (Accessing Table Elements with getElementById)
numeric variable, (Performing the Sort)

O

object literal notation, (Dragging Columns without a Mouse)
object orientation
simulating traditional, (Simulating Traditional Object Orientation)
objects, (Summary)
(see also built-in objects)
functions as, (Functions Are Objects)
properties, (Finding and Iterating through Properties in an Object)
stealing methods from, (Understanding the arguments Array)
offsets
in canvas element, (Casting a Shadow)
onkeydown event
versus onkeyup event, (Dragging Columns without a Mouse)
onkeyup event
versus onkeydown event, (Dragging Columns without a Mouse)
onmousedown event handler, (The onmousedown Event Handler)
onmousemove event handler, (The onmousemove Event Handler)
onmouseup event handler, (The onmouseup Event Handler)
Opera browser
clearRect and globalCompositeOperation, (Updating the Chart Dynamically)
optimization (see implied n optimization; performance)
out-of-the-box badges, (Out-of-the-box Badges)

P

pages
initializing in canvas element, (Initializing the Page)
parsing
tables, (Parsing the Content)
partial function application
closures, (Partial Function Application)
paths
shapes, (Creating Paths)
patterns (see module pattern; self-executing function patterns)
performance, (Summary)
(see also implied n optimization)
badges, (Performance Issues)
rendering mazes, (The resetDungeonView Method)
tuning with Firebug, (Performance Tuning Your Application)
perspective
in floor plans, (Creating Perspective)
photos, (Summary)
(see also avatar images; Flickr API; thumbnails)
geotagging, (Geotagging Photos)
in Google Maps, (Pulling it All Together)
pie charts
creating with canvas, (Creating a Pie Chart)
private methods
badges, (Defining Private Methods)
profile data
using, (Performance Tuning Your Application)
progressive enhancement
badges, (Planning the Badge Script)
properties
assigning functions to, (Functions Are Objects)
objects, (Finding and Iterating through Properties in an Object)
storing between function calls, (Using callee to Store Properties Between Function Calls)
prototype chains
inheritance, (There Are No Classes in JavaScript)
Prototype library, (Simulating Traditional Object Orientation)
prototype property
constructor functions, (There Are No Classes in JavaScript)
using, (Making the Sort Functionality Accessible)
public methods
badges, (Defining Public Methods)

Q

quadratic Bézier curves
drawing with canvas element, (Bézier Curves)

R

rapid application development
Firebug, (Performing Rapid Application Development)
recentering
maps, (Recentering the Map)
rectangles
creating with canvas element, (Creating Rectangles)
rendering
canvas elements in FireFox browser, (Initializing the Page)
performance, (The resetDungeonView Method)
rows
accessing with tables, (Accessing Table Elements with getElementById)
rows variable, (Performing the Sort)

S

same-origin restriction, (The Same-origin Restriction)
scope
handling, (Handling Events and Scope Issues)
Script view
Firebug, (The Script View)
search engine optimization (SEO)
badges, (Server-side Badges)
searching
in Firebug, (Performing Rapid Application Development)
security
cross-domain JSON, (Enabling Cross-domain JSON)
eval function, (The Module Pattern), (JSON)
same-origin restriction, (The Same-origin Restriction)
self-executing function patterns
about, (The Self-executing Function Pattern)
self-optimizing functions
creating, (Creating Self-optimizing Functions)
server backup
badges, (Calling for Server Backup)
server-side badges
about, (Server-side Badges)
shadows
creating in canvas element, (Casting a Shadow)
shapes
creating with canvas element, (Creating Shapes)
states (see heading states)
storing
properties between function calls, (Using callee to Store Properties Between Function Calls)
stroke operations
paths, (Creating Paths)
rectangles, (Creating Rectangles)
strokes
re-stroking lines, (Determining the Dimensions of a Segment)
Style subview
Firebug, (Viewing and Editing On the Fly)

T

table elements
accessing with getElementById, (Accessing Table Elements with getElementById)
accessing with getElementsByTagName, (Accessing Table Elements with getElementsByTagName)
tables, (Fun with Tables)
dragging columns, (Creating Draggable Columns)
sorting columns, (Sortable Columns)
structure of, (Anatomy of a Table)
tbody element, (Accessing Table Elements with getElementById)
ternary operators
browsers, (Parsing the Content)
th variable, (Performing the Sort)
theads
tables, (Making the Sort Functionality Accessible)
thumbnails
badges, (Performance Issues)
clickable, (Creating Clickable Thumbnails)
displaying, (Enabling Cross-domain JSON)
highlighting current, (Highlighting the Current Thumbnail)
trackbacks
blogs and badges, (Server-side Badges)
triangles
creating with CSS and JavaScript, (Basic Principles)
typeof operator, (Detecting Types)
types
detecting, (Detecting Types)

U

updating
charts dynamically, (Updating the Chart Dynamically)
user experience
badges, (User Experience Issues)

V

validity
canvas element, (Working with canvas)
variables, (Summary)
(see also global variables)
configuration, (Defining Configuration Variables)
vector graphics, (Vector Graphics with canvas)
canvas element, (Working with canvas)
pie charts, (Creating a Pie Chart)
Vector Markup Language (VML)
and canvas element, (canvas in Internet Explorer)
views, (Summary)
(see also dynamic view; map view)
Firebug, (The Firebug Views)
switching, (Switching Views)

W

Watch subview
Firebug, (Debugging Your Application)
whitelisting
Firebug, (Enabling and Disabling Firebug)
widgets, (Summary)
(see also Flickr API; Google Maps API)
defined, (APIs, Mashups, and Widgets! Oh, My!)
wrapper functions, (Aspect-oriented Programming on a Shoestring)

X

XMLHttpRequest objects
Ajax requests, (The Problem with Ajax)
fallbacks, (Providing a Fallback for Failed Connections)
same-origin restriction, (The Same-origin Restriction)
XPath support
browsers, (Creating Self-optimizing Functions)

Y

Yahoo! User Interface (YUI) library
self-executing function patterns, (The Self-executing Function Pattern)
YSlow
about, (YSlow)

 

About SitePoint

SitePoint specializes in publishing fun, practical and easy-to-understand content for Web professionals. Visit SitePoint.com to access our books, newsletters, articles and community forums.

“Inspirational, Cutting-edge JavaScript From the World’s Best!”
Crazy offer

SitePoint Books

  • Advocate best practice techniques
  • Lead you through practical examples
  • Provide working code for your web site
  • Make learning easy and fun

100% Money Back Guarantee