Secrets of the JavaScript Ninja

ISBN-10: 193398869X

ISBN-13: 9781933988696

Edition: 2009

List price: $39.99 Buy it from $4.21
30 day, 100% satisfaction guarantee

If an item you ordered from TextbookRush does not meet your expectations due to an error on our part, simply fill out a return request and then return it by mail within 30 days of ordering it for a full refund of item cost.

Learn more about our returns policy


In Secrets of the JavaScript Ninja, JavaScript expert John Resig reveals theinside know-how of the elite JavaScript programmers. Written to be accessibleto JavaScript developers with intermediate-level skills.This book takes readers on a journey towards mastering modern JavaScriptdevelopment in three phases: design, construction, and maintenance. It firstestablishes a base of strong, advanced JavaScript knowledge. The book thenteaches readers how to construct a JavaScript library. It examines all the numeroustasks JavaScript libraries have to tackle and provides practical solutions anddevelopment strategies. It then presents the various maintenance techniquesrequired to keep their code running well into the future.With Secrets of the JavaScript Ninja readers will gain the knowledge andNinja-like skills to build their own JavaScript libraries, or to understand how touse any modern JavaScript library available.
Used Starting from $4.21
New Starting from $30.04
what's this?
Rush Rewards U
Members Receive:
You have reached 400 XP and carrot coins. That is the daily max!
Study Briefs

Limited time offer: Get the first one free! (?)

All the information you need in one place! Each Study Brief is a summary of one specific subject; facts, figures, and explanations to help you learn faster.

Add to cart
Study Briefs
Calculus 1 Online content $4.95 $1.99
Add to cart
Study Briefs
Algebra Online content $4.95 $1.99
Add to cart
Study Briefs
Introduction to Logic Online content $4.95 $1.99
Add to cart
Study Briefs
Business Math Formulas Online content $4.95 $1.99
Customers also bought

Book details

List price: $39.99
Copyright year: 2009
Publisher: Manning Publications Company
Publication date: 1/17/2013
Binding: Paperback
Pages: 300
Size: 8.00" wide x 9.50" long x 1.00" tall
Weight: 1.716
Language: English

John Resig is a programmer and entrepreneur who's been developing web applications for over eight years. Having primarily focused on back-end development for most of that time using Perl and MySQL, John changed his focus toward implementing usable web front ends. He holds a degree in computer science from Rochester Institute of Technology in New York, and has published several papers on data mining instant messaging networks. When he's not programming, he enjoys watching movies, writing in his blog, , and spending time with his girlfriend.

Christopher Grover lives in Fairfax, California with his wife and two daughters. Chris received degrees in Creative Writing and Film from Emerson College in Boston, Massachusetts. He's worked as a technical writer, advertising copywriter and product publicist for more than 25 years. His freelance articles have been published in a variety of magazines from Fine Homebuilding to CD-ROM World. Chris's latest project is launching Bolinas Road Creative, an agency that helps small businesses promote their products and services. He's also the author of Word 2007: The Missing Manual and Word 2007 for Starters: The Missing Manual.Bear Bibeault is coauthor of Manning's bestselling Secrets of the JavaScript Ninja, along with Ajax in Practice, and Prototype and Scriptaculous in Action.

about this book
about the authors
Preparing for Training
Enter the ninja
The JavaScript libraries we'll be tapping
Understanding the JavaScript language
Cross-browser considerations
Current best practices
Current best practice: testing
Current best practice: performance analysis
Arming with testing and debugging
Debugging code
Test generation
Testing frameworks
YUI Test
Newer unit-testing frameworks
The fundamentals of a test suite
The assertion
Test groups
Asynchronous testing
Apprentice Training
Functions are fundamental
What's with the functional difference?
Why is JavaScript's functional nature important?
Sorting with a comparator
Scoping and functions
From arguments to function parameters
Invocation as a function
Invocation as a method
Invocation as a constructor
Invocation with the apply() and call() methods
Wielding functions
Anonymous functions
Recursion in named functions
Recursion with methods
The pilfered reference problem
Inline named functions
The callee property
Fun with function as objects
Storing functions
Self-memoizing functions
Faking array methods
Variable-length argument lists
Using apply() to supply variable arguments
Function overloading
Checking for functions
Closing in on closures
How closures work
Putting closures to work
Private variables
Callbacks and timers
Binding function contexts
Partially applying functions
Overriding function behavior
Function wrapping
Immediate functions
Temporary scope and private variables
Library wrapping
Object-orientation with prototypes
Instantiation and prototypes
Object instantiation
Object typing via constructors
Inheritance and the prototype chain
HTML DOM prototypes
The gotchas!
Extending Object
Extending Number
Subclassing native objects
Instantiation issues
Writing class-like code
Checking for function serializability
Initialization of subclasses
Preserving super-methods
Wrangling regular expressions
Why regular expressions rock
A regular expression refresher
Regular expressions explained
Terms and operators
Compiling regular expressions
Capturing matching segments
Performing simple captures
Matching using global expressions
Referencing captures
Non-capturing groups
Replacing using functions
Solving common problems with regular expressions
Trimming a string
Matching newlines
Escaped characters
Taming threads and timers
How timers and threading work
Setting and clearing timers
Timer execution within the execution thread
Differences between timeouts and intervals
Minimum timer delay and reliability
Dealing with computationally expensive processing
Central timer control
Asynchronous testing
Ninja Training
Ninja alchemy: runtime code evaluation
Code evaluation mechanisms
Evaluation with the eval() method
Evaluation via the Function constructor
Evaluation with timers
Evaluation in the global scope
Safe code evaluation
Function "decompilation"
Code evaluation in action
Converting JSON
Importing namespaced code
JavaScript compression and obfuscation
Dynamic code rewriting
Aspect-oriented script tags
Metalanguages and DSLs
With statements
What's with "with"?
Referencing properties within a with scope
Assignments within a with scope
Performance considerations
Real-world examples
Importing namespaced code
Templating with "with"
Developing cross-browser strategies
Choosing which browsers to support
The five major development concerns
Browser bugs and differences
Browser bug fixes
Living with external code and markup
Missing features
Implementation strategies
Safe cross-browser fixes
Object detection
Feature simulation
Untestable browser issues
Reducing assumptions
Cutting through attributes, properties, and CSS
DOM attributes and properties
Cross-browser naming
Naming restrictions
Differences between XML and HTML
Behavior of custom attributes
Performance considerations
Cross-browser attribute issues
DOM id/name expansion
URL normalization
The style attribute
The type attribute
The tab index problem
Node names
Styling attribute headaches
Where are my styles?
Style property naming
The float style property
Conversion of pixel values
Measuring heights and widths
Seeing through opacity
Riding the color wheel
Fetching computed styles
Master Training
Surviving events
Binding and unbinding event handlers
The Event object
Handler management
Centrally storing associated information
Managing event handlers
Triggering events
Custom events
Bubbling and delegation
Delegating events to an ancestor
Working around browser deficiencies
The document ready event
Manipulating the DOM
Injecting HTML into the DOM
Converting HTML to DOM
Inserting into the document
Script execution
Cloning elements
Removing elements
Text contents
Setting text
Getting text
CSS selector engines
The W3C Selectors API
Using XPath to find elements
The pure-DOM implementation
Parsing the selector
Finding the elements
Filtering the set
Recursing and merging
Bottom-up selector engine
Free shipping on orders over $35*

*A minimum purchase of $35 is required. Shipping is provided via FedEx SmartPost® and FedEx Express Saver®. Average delivery time is 1 – 5 business days, but is not guaranteed in that timeframe. Also allow 1 - 2 days for processing. Free shipping is eligible only in the continental United States and excludes Hawaii, Alaska and Puerto Rico. FedEx service marks used by permission."Marketplace" orders are not eligible for free or discounted shipping.

Learn more about the TextbookRush Marketplace.