A practical walkthrough of using map/reduce with MongoDB to aggregate statistics for generating a report.
Although Christian Heilmann covers what he wished he knew about JavaScript earlier, he actually points out the features JavaScript developers should know: shortcut notations, JSON, native JavaScript functions, event delegation, anonymous functions and the module pattern, allowing configuration, and using good libraries to abstract away browser differences.
Based on Simon Willison's original 2005 eTech talk, Simon expands this into a full article covering the expressive functionality of JavaScript. He covers the basics of JavaScript: literals, variables, functions, scope, control flow, objects, classes, inner functions and closures. Everything a developer needs to know before diving into more advanced JavaScript.
Andy Hume whittles away the various JavaScript libraries to produce a clear explanation of event delegation and how it works. Its a technique that reduces the number of event listeners attached to the document by attaching just one event listener to a container element. He presents a simple code example and talks about the benefits of event delegation, including performance and code maintenance. (Includes workarounds for IE and a Safari bug)
David Dorward compares dot notation and square bracket notation, where square bracket notation can be used where dot notation can't. Recommends using dot notation, because its easier to read, and square bracket notation when it can't be done with dot notation.
The Yahoo! Web Developer Network provides a one page overview of JSON, giving a quick tutorial on JSON, how to get Yahoo! Web services to emit JSON, offering an output of a JSON object literal as well as using a callback function method. Yahoo! also describes how their web services typically translate their XML structures into JSON.
Ryan Campbell of Particletree offers a step-by-step guide to getting started with JSON. Since JavaScript can use JSON to either send or receive from the server (both parts of an AJAX request), Ryan suggests getting started with sending JSON (after stringifying it) to the server and converting it to a server side object. Then sending that object back, encoded as JSON, to the client and process that. He offers working library code for both JavaScript and PHP (for the server part).
An online copy of O'Reilly's 2002 book Creating Applications with Mozilla. It focused on pre-1.0 versions of Mozilla, so details about the application structure has changed, but the XUL elements are relatively stable.
Another Douglas Crockford video. This time Douglas talks about the Document Object Model, about how Java failed, and JavaScript evolved thanks to DHTML and DOM. He talks about how to use DOM to traversing and manipulating elements in an HTML document, walking the DOM, making elements, innerHTML, as well as Events, memory leaks. He talks about the cracks in DOM, and how we must be prepared to back off when we hit the browser limits of DOM.
Douglas Crockford's presentation on Advanced JavaScript. He covers topics such as inheritance, modules, debugging, efficiency and JSON.
First in a series of talks from Douglas Crockford about the JavaScript language. These talks cover the JavaScript language, from the history, the language, advanced features, platforms, standards and programming style. Talks about inheritance, using functions to build objects, closures, as well as the basic JavaScript syntax. Also covers code conventions. JavaScript is a language that requires discipline.
Christian Heilmann's excellent guide to writing unobtrusive JavaScript. Takes the reader from the inline JavaScript world right through to a clean dynamically attached events with all the JavaScript code in external files. Covers DOM Scripting. This is the key reference to unobtrusive scripting.