Professional JavaScript for Web Developers and over one million other books are available for Amazon Kindle. Learn more

Buy New

or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
Buy Used
Used - Acceptable See details
$22.43 & eligible for FREE Super Saver Shipping on orders over $25. Details

or
Sign in to turn on 1-Click ordering.
 
   
Kindle Edition
 
   
Sell Back Your Copy
For a $8.40 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Professional JavaScript for Web Developers (Wrox Programmer to Programmer)
 
 
Start reading Professional JavaScript for Web Developers on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Professional JavaScript for Web Developers (Wrox Programmer to Programmer) [Paperback]

Nicholas C. Zakas (Author)
4.4 out of 5 stars  See all reviews (18 customer reviews)

List Price: $49.99
Price: $26.70 & this item ships for FREE with Super Saver Shipping. Details
You Save: $23.29 (47%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Only 6 left in stock--order soon (more on the way).
Want it delivered Friday, February 3? Choose One-Day Shipping at checkout. Details

Formats

Amazon Price New from Used from
Kindle Edition $18.14  
Paperback $26.70  
Sell Back Your Copy for $8.40
Whether you buy it used on Amazon for $15.99 or somewhere else, you can sell it back through our Book Trade-In Program at the current price of $8.40.
Used Price$15.99
Trade-in Price$8.40
Price after
Trade-in
$7.59

Book Description

Wrox Programmer to Programmer January 14, 2009
Professional JavaScript for Web Developers, 2nd Edition, provides a developer-level introduction along with the more advanced and useful features of JavaScript.

Starting at the beginning, the book explores how JavaScript originated and evolved into what it is today. A detailed discussion of the components that make up a JavaScript implementation follows, with specific focus on standards such as ECMAScript and the Document Object Model (DOM). The differences in JavaScript implementations used in different popular web browsers are also discussed.

Building on that base, the book moves on to cover basic concepts of JavaScript including its version of object-oriented programming, 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 regular expressions in JavaScript. The book then takes all this 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 look at where JavaScript is going in the future.

This book is aimed at three groups of readers:

  • Experienced developers familiar with object-oriented programming who are looking to learn JavaScript as it relates to traditional OO languages such as Java and C++
  • Web application developers attempting to enhance the usability of their web sites and web applications
  • Novice JavaScript developers aiming to better understand the language

In addition, familiarity with the following related technologies is a strong indicator that this book is for you:

  • Java
  • PHP
  • ASP.NET
  • HTML
  • CSS
  • XML

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 Wrox’s Beginning JavaScript, 3rd Edition (Wiley, 2007).

This book covers:

  • What Is JavaScript?—Explains the origins of JavaScript: where it came from, how it evolved, and what it is today. Concepts introduced include the relationship between JavaScript and ECMAScript, the Document Object Model (DOM), and the 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.
  • JavaScript in HTML—Examines how JavaScript is used in conjunction with HTML to create dynamic web pages. Introduces the various ways of embedding JavaScript into a page, including a discussion surrounding the JavaScript content-type and its relationship to the element.
  • Language Basics—Introduces basic language concepts, including syntax and flow control statements. Explains the syntactic similarities of JavaScript and other C-based languages and points out the differences. Type coercion is introduced as it relates to built-in operators.
  • Variables, Scope, and Memory—Explores how variables are handled in JavaScript given their loosely typed 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 garbage collection in JavaScript explains how memory is reclaimed when variables go out of scope.
  • Reference Types—Covers all of the details regarding JavaScript's built-in reference types, such as Object and Array. Each reference type described in ECMA-262 is discussed both in theory and how they relate to browser implementations.
  • Object-Oriented Programming—Explains how to use object-oriented programming in JavaScript. Since JavaScript has no 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 approach.
  • Anonymous Functions—Explores one of the most powerful aspects of JavaScript: anonymous functions. Topics include 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 situational appropriateness.
  • The Document Object Model—Introduces the Document Object Model (DOM) objects available in JavaScript as defined in 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 are discussed.
  • Events—Explains the nature of events in JavaScript, where they originated, legacy support, and how the DOM redefined how events should work. A variety of devices are covered, including the Wii and iPhone.
  • Scripting Forms—Looks at using JavaScript to 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 browsers handle errors in JavaScript code and presents several ways to handle errors. Debugging tools and techniques are also discussed for each browser, including recommendations for simplifying the debugging process.
  • XML in JavaScript—Presents the features of JavaScript used to read and manipulate eXtensible Markup Language (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 the client.
  • ECMAScript for XML—Discusses the ECMAScript for XML (E4X) extension to JavaScript, which is designed to simplify 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 complex JavaScript patterns, including function currying, partial function application, and dynamic functions. Also covers creating a custom event framework to enable simple event support for custom objects.
  • 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 JavaScript in an enterprise environment. Techniques for better 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 augment JavaScript in the browser. Even though these APIs aren't 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.
  • The Evolution of JavaScript—Looks into the future of JavaScript to see where the language is headed. ECMAScript 3.1, ECMAScript 4, and ECMAScript Harmony are discussed.

Frequently Bought Together

Professional JavaScript for Web Developers (Wrox Programmer to Programmer) + JavaScript: The Good Parts + JavaScript Patterns
Price For All Three: $64.32

Show availability and shipping details

Buy the selected items together
  • In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • JavaScript: The Good Parts $17.83

    In Stock.
    Ships from and sold by Amazon.com.
    Eligible for FREE Super Saver Shipping on orders over $25. Details

  • JavaScript Patterns $19.79

    In Stock.
    Ships from and sold by Amazon.com.
    Eligible for FREE Super Saver Shipping on orders over $25. Details



Editorial Reviews

From the Back Cover

If you want to achieve JavaScript's full potential, it is critical to understand its nature, history, and limitations. This book sets the stage by covering JavaScript from its very beginning to the present-day incarnations that include support for the DOM and Ajax. It also shows you how to extend this powerful language to meet specific needs and create seamless client-server communication without intermediaries such as Java or hidden frames.

You'll explore basic concepts of JavaScript including its version of object-oriented programming, inheritance, and its use in HTML and XHTML. A detailed discussion of the components that make up a JavaScript implementation follows, with specific focus on standards such as ECMAScript and DOM. All three levels of DOM are explained, including advanced topics such as event simulation, XML parsing, and XPath queries. You'll also learn how to utilize regular expressions and build dynamic user interfaces. This valuable insight will help you apply JavaScript solutions to the business problems faced by Web developers everywhere.

What you will learn from this book

  • All of the details regarding JavaScript's built-in reference types

  • How to use object-oriented programming in JavaScript

  • Ways to detect the client machine and its capabilities

  • Debugging tools and techniques for each browser

  • Steps for reading and manipulating XML data

  • How to create a custom event framework

  • Various techniques for storing data on the client machine

  • Approaches to working with JavaScript in an enterprise environment

Who this book is for
This book is for Web developers who want to use JavaScript to dramatically improve the usability of their Web sites and Web applications and for those with programming experience, especially object-oriented programming experience.

Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.

About the Author

Nicholas C. Zakas has a B.S. in Computer Science from Merrimack College and an M.B.A. from Endicott College. He is the coauthor of Professional Ajax, Second Edition (Wiley, 2007) as well as dozens of online articles. Nicholas works for Yahoo! as a principal front-end engineer on Yahoo!’s front page and a contributor to the Yahoo! User Interface (YUI) Library. He has worked in web development for more than eight years, during which time he has helped develop web solutions in use at some of the largest companies in the world. Nicholas can be reached through his web site www.nczonline.net.PM

Product Details

  • Paperback: 840 pages
  • Publisher: Wrox; 2 edition (January 14, 2009)
  • Language: English
  • ISBN-10: 047022780X
  • ISBN-13: 978-0470227800
  • Product Dimensions: 9.2 x 7.4 x 1.9 inches
  • Shipping Weight: 2.6 pounds (View shipping rates and policies)
  • Average Customer Review: 4.4 out of 5 stars  See all reviews (18 customer reviews)
  • Amazon Best Sellers Rank: #136,849 in Books (See Top 100 in Books)

More About the Author

Nicholas C. Zakas is a front-end consultant who specializes in user interface design and implementation for web applications using JavaScript, Dynamic HTML, CSS, XML, and XSLT. Has has 15 years of web development experience and spent nearly five years at Yahoo! in various roles, including principal front end engineer for the Yahoo! homepage and contributor to the Yahoo! User Interface (YUI) library, having written the Cookie Utility, Profiler, and YUI Test.

Nicholas is the author of Professional JavaScript for Web Developers and High Performance JavaScript, a co-author on Professional Ajax, and a contributor to Even Faster Web Sites. He has also written for several online sites such as WebReference, Sitepoint, the YUI Blog, A List Apart, and the Web Performance Advent Calendar.

Nicholas regularly gives talks about web development, JavaScript, and best practices. He has given talks at companies such as Yahoo!, LinkedIn, Google, Netflix, TripAdvisor, and NASA, and conferences such as the Ajax Experience, the Rich Web Experience, OSCON, WebDirections, Fronteers, and Velocity.

Through his writing and speaking, Nicholas seeks to teach others the valuable lessons he's learned while working on some of the most popular and demanding web applications in the world. He firmly believes that no difficult problem should need to be solved more than once.

 

Customer Reviews

18 Reviews
5 star:
 (13)
4 star:
 (2)
3 star:
 (1)
2 star:
 (2)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.4 out of 5 stars (18 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

30 of 30 people found the following review helpful:
5.0 out of 5 stars Take your skills to the next level, August 2, 2009
By 
This review is from: Professional JavaScript for Web Developers (Wrox Programmer to Programmer) (Paperback)
This is currently my favorite book on JavaScript.

Zakas doesn't pull any punches. It took me a while to work through some of the chapters, primarily Chapter 5 (Reference Types), Chapter 6 (Object-Oriented Programming) and Chapter 18 (Advanced Techniques) because of the difficulty of the material. This is a good thing: the difficulty is due to the sometimes non-intuituve aspects of JavaScript (i.e., function binding and currying), not to any possible failure on the part of the author. His command of his material is evident in his ability to explain these difficult techniques, which can seem overwhelming at first blush. I really like that he doesn't insult his reader's intelligence by sticking with the easier-to-understand aspects of JavaScript but covers the most advanced JavaScript topics thoroughly. I expect to be challenged when reading a book on JavaScript, and taking time to work through the examples by stepping through them in Firebug is well worth it and what I look forward to doing. I don't like when I can read a book and not have to touch a keyboard to understand the material.

I especially love the chapter on OO programming and how he breaks down each OO pattern. He starts with the most basic example of inheritance and works up to the best-case scenario, always giving the pros and cons of each pattern along the way and when each pattern could be employed. In doing so, he provides an invaluable service to those who want to understand how libraries are engineered. I remember when I first was looking at the source code for a particular library, and I was completely baffled by what I saw. For example, I would often see this:

MyClass.superclass.constructor.call(this);

There was no explanation to what this esoteric statement was doing. Now, after reading the book (actually, at the time it was the first edition of the book), I understand that this is known as constructor stealing or object masquerading, and I now know that it's used to inherit instance properties. I had many, many moments like this, and now when I look at source code I can intelligently follow it and understand its intent.

This book empowers the reader with new knowledge. This is especially important when more and more I encounter front-enders who feel that knowing jQuery is knowing JavaScript. I remember when I first began looking at JavaScript libraries I was completely overwhelmed; from that moment I resolved to learn the JavaScript language inside and out if I could. Then, I'd go back to the libraries. Well, that has paid off in spades now, and I feel completely comfortable working in any library knowing what they're doing under the hood (and I have worked with several at different jobs). In fact, I write my own library in my spare time, and I never could have begun to do that or understand how to do that without books like this one and others.

I also love how Zakas gives the back-history to all the subjects he covers. Knowing where stuff came from is important, even if I would never use it. For example, I never knew there were HTML methods, and if I were to have come across them in the legacy code that I support I would've thought that they were user-defined methods. Now I know better. Knowledge is power.

I work on a team composed of Java developers, and this book has helped me to better communicate with them. I love how Zakas talked about how the Array methods can act as data structures. That's very important for a book to cover. Giving comparisons to other languages and emphasizing the similarities and how one language can translate to another is another way that this book has empowered me. It's much easier for me now to convey ideas to my teammates when I can express things like, "JavaScript doesn't have block-level scope like you're used to, but that's what anonymous functions are doing and that's why you see them here...", etc.

Lastly, the expanded chapter on Best Practices is invaluable. I've already employed them in my own work and have gotten the wheels in motion to do what I can at work (gzipping and including compression in our build process).

If you're left a little or a lot puzzled about prototypal inheritance, closures and OO programming in general, get a copy of this book and devote time to it. You'll walk away completely confident that there isn't anything out there that you can't figure out, as I did.

P.S. I suggest reading this book cover-to-cover, even if you feel like that doesn't apply to you. Zakas is very thorough in disseminating lesser-known aspects of both core and client-side JavaScript. In fact, there's so much that I'm going back for a second-helping.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


22 of 23 people found the following review helpful:
5.0 out of 5 stars should be sub-titled "JavaScript: The Good Parts (the long version)", February 5, 2010
Amazon Verified Purchase(What's this?)
This review is from: Professional JavaScript for Web Developers (Wrox Programmer to Programmer) (Paperback)
While I was reading this, I liked to imagine that I was at university and that Douglas Crockford was the insanely popular genius professor that showed up late for lectures, and then either spoke too fast or else mumbled a lot, and then locked himself in his office refusing to answer the door during office hours while he worked on his Next Big Thing that would make everyone oooh and aaah and validate his brilliance. Meanwhile, in that same imaginary university, Nicholas Zakas was the graduate student that served as the TA to that class--and he happened to be equally brilliant and super-accessible and willing to take the time out to explain it all in a way that was thorough and comprehensible.

So that being said, if you consider yourself or would like to consider yourself a professional front-end engineer for web applications (or in any way want to become a JavaScript expert), I cannot recommend this book enough. On the one hand, you have Crockford's JavaScript: The Good Parts--which does a great job of eviscerating JavaScript while at the same time extracting its (well...) its Good Parts--but it's like someone ran the text through a minification utility and made it tokenized and super-dense and stripped out all the comments. And on the other hand, you have Zakas' Professional JavaScript for Web Developers which one might describe as <em>The Good Parts (the long version)</em>.

What Zakas gives us--while assuming that you are already doing some professional JavaScript web development--is a good overview of JavaScript/ECMAScript, with special care given to make the text practical. This is not strictly an academic exercise; he is careful to make sure that each example applies to real world scenarios (<em>i.e.</em>, web apps running in a browser) and that you are able to take away something useful and meaningful from the text's discussion. In other words, he provides a road map for how to make the most of JavaScript as a language (...since, as a front-end engineer on the web, you're stuck with it.) and how to make it work in all the convoluted, counter-intuitive situations that you are basically guaranteed to encounter (Even if you don't expect to ever work with XML. Even if you do think that the JavaScript 2 and ECMAScript 4 stuff is a little too future-forward/in-the-weeds type stuff.).

In a nutshell, if you are doing professional web development on the front end, this book needs to be on your desk. I can't wait to check out his next book...
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


9 of 9 people found the following review helpful:
5.0 out of 5 stars Explains the WHYs often overlooked in copy-and-paste JavaScript books, June 6, 2009
This review is from: Professional JavaScript for Web Developers (Wrox Programmer to Programmer) (Paperback)
I bought this wonderful book a short while ago, just after the 2nd edition was released. Although I haven't finished it (over halfway through), the author's writing style makes understanding JavaScript easier. I have bought many other books on JavaScript but most follow the copy-and-paste code tutorial style which can be completely confusing for the complete JavaScript beginner such as myself. This book offers simple explanations using concepts that illuminate, rather than befuddle, the nuances and idiosyncrasies inherent in JavaScript. While there are many JavaScript books out there, the roads they follow lead to being just another bookshelf dust collector; this book breaks new trails into expanding your JavaScript skill, actually guiding you on to the golden path to Internet rockstardom!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews











Only search this product's reviews



Inside This Book (learn more)
Key Phrases - Statistically Improbable Phrases (SIPs): (learn more)
client detection, anonymous functions, document mode, object notation, supertype constructor, type coercion errors, parasitic inheritance, operation aborted error, new decimal value, sibling text nodes, identically equal operator, namespace resolver, using object literal notation, xhr object, subtype constructor, dragdrop object, prototypal inheritance, return numl, timer code, readystatechange event, scope chain, wrox namespace, ick event handler, signed right shift, var colors
Key Phrases - Capitalized Phrases (CAPs): (learn more)
Internet Explorer, Software Engineer, Netscape Navigator, Jim Smith, Advanced Techniques, The Document Object Model, Best Practices, Reference Types, Object-Oriented Programming, Scripting Forms, Language Basics, Client-Side Storage, Developer Tools, Stop Debugging, The Math, The Browser Object Model, Third Edition, Pacific Standard Time, Thu Feb, Web Inspector, Netscape Communicator, Step Out, Windows Mobile, Method Description, Boolean Read
Browse Sample Pages:
Front Cover | Table of Contents | First Pages | Index | Surprise Me!
Search Inside This Book:

What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 
(4)
(3)
(3)
(1)

Your tags: Add your first tag
 

Customer Discussions

This product's forum
Discussion Replies Latest Post
Kindle version of second edition? 0 Oct 28, 2010
See all discussions...  
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
   
Related forums





Look for Similar Items by Category


Look for Similar Items by Subject