sSince 1996, JavaScript: The Definitive Guide has been the bible for JavaScript programmers—a programmer's guide and comprehensive reference to the core language and to the client-side JavaScript APIs defined by web browsers.
The 6th edition covers HTML5 and ECMAScript 5. Many chapters have been completely rewritten to bring them in line with today's best web development practices. New chapters in this edition document jQuery and server side JavaScript. It's recommended for experienced programmers who want to learn the programming language of the Web, and for current JavaScript programmers who want to master it.
"A must-have reference for expert JavaScript programmers...well-organized and detailed."
--Brendan Eich, creator of JavaScript, CTO of Mozilla
"I made a career of what I learned from JavaScript: The Definitive Guide.”
-- Andrew Hedges, Tapulou
From the Author
My 10 Favorite Examples from this Book
The 6th edition of JavaScript: The Definitive Guide includes 125 examples that you can view and download from from examples.oreilly.com/9780596805531/ or from github.com/davidflanagan/javascript6_examples
These are ten of my favorites from the book. Note that many of these use new features of ES5 or of HTML5, and will only work in the newest browsers:
1) Example 1-1 is is an extended example in the first chapter of the book, intended to show readers a simple but non-trivial example of JavaScript. This is the loan calculator example from the last edition, but made much more interesting with the addition of client-side graphics, localStorage, and Ajax.
2) Example 9-7 emulates Java-style enumerated types in JavaScript. It demonstrates that JavaScript's prototype-based inheritance is so flexible that factory methods can be normal object factories or even class factories. That example is a little clearer if you look at the code in Example 9-8.
3) Example 9-16 defines a class hierarchy of abstract and concrete Set classes. This one is a favorite because it involves data types and API design. Chapter 9 includes a number of other Set examples, too.
4) Example 9-23 demonstrates the ES5 Object.defineProperty() method and defines a convenient way to inspect and modify the attributes of the properties of an object. It may not be practical, but I think it is a beautiful hack.
5) Example 15-10 is a simple stream-like API wrapped around the innerHTML property of an element. When you're generating text (a table, for example) for display it is sometimes easier to pass each chunk that you compute to a write() method than it is to concatenate it all together and set it on innerHTML.
6) Example 21-03 is an analog clock implemented as an SVG graphic with scriptable hands. I love client-side graphics, and this is a favorite of mine because making the hands rotate is so simple with SVG transforms.
7) Example 21-06 draws a fractal Koch snowflake using the <canvas> tag. I like it because it draws the same line over and over again, but uses transformations to make the line appear at different locations, orientations and sizes.
8) Example 21-13 is another graphical example: it draws sparklines (edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR). This one is a favorite just because sparklines are so cool.
9) Example 22-1 uses the HTML5 geolocation API to find out where you are then uses the Google Maps API to obtain a static map of your location. I like it because geolocation (via wifi networks) is just pure magic!
10) Example 22-15 is a long example that demonstrates the IndexedDB API. I like it because the idea of a client-side database in a web browser is crazy and cool. This one is really cutting-edge, but if you're running Firefox 4, you can try it out here: davidflanagan.com/demos/zipcodes.html
From the Back Cover
Since 1996,
JavaScript: The Definitive Guide has been the bible for JavaScript programmers. With more than 500,000 copies in print, web developers are still raving about it:
- "A must-have reference for expert JavaScript programmers...well-organized and detailed" -- Brendan Eich, creator of JavaScript, CTO of Mozilla
- "I made a career of what I learned from JavaScript:The Definitive Guide"--Andrew Hedges, Tapulous
- "The Definitive Guide taught me JavaScript"--Tom Robinson, cofounder of 280 North, cocreator of Cappuccino
- "I know which parts of JavaScript matter, based on how crinkled the spine of my copy of The Definitive Guide is in that section"--J. Chris Anderson, cofounder of CoucheBase, Apache CouchDB committer, and author of CouchDB:The Definitive Guide
- "...an indispensable reference for all JavaScript developers. If there's something I need to know about JavaScript, I trust The Definitive Guide will have the right answer for me. It's that good."--Rey Bango, Microsoft Client-Web Community Program Manager and jQuery Team member.
About the Author
David Flanagan is a programmer and writer with a website at http://davidflanagan.com. His other O'Reilly books include JavaScript Pocket Reference, The Ruby Programming Language, and Java in a Nutshell. David has a degree in computer science and engineering from the Massachusetts Institute of Technology. He lives with his wife and children in the Pacific Northwest between the cities of Seattle, Washington, and Vancouver, British Columbia.