Sugar augments the existing JavaScript environment with helper methods on existing objects. From fixing broken support of standard methods, widening acceptable arguments, multi-lingual and improved regex support on strings, nice supplementary string methods like words()
, and shortcut methods to Math object methods. Additional helpers for Dates, Objects, Functions and Regex. An library for a consistentising JavaScript across different imlementations.
Thomas Fuchs offers a JavaScript powered application that allows developers to filter down to find the most appropriate JavaScript micro-library or micro-framework for their project. There has been an explosion of mini-libraries in the JavaScript world as web developers get to grips with more complex and rich user interfaces and web applications.
A clever hands-on interactive mini-course by Nathan Whitehead that guides you through bite-sized chunks from variables, to functions, to return values, to functions as first-class objects and right into closures and finally continuations. The hands-on exercises are JS Linted and unit-tested which gives you ample space to try out your new-found knowledge.
A cross-browser bookmarklet to examine the box-model of any DOM element on a page. Runs on Internet Explorer, Safari (and Webkit based browsers), Mozilla (including Firefox and Camino).
A DHTML shell that allows you to query the current browser window. Includes command line JavaScript execution, mouseover DOM query, CSS input, tab completion, profiler and object inspection. Can be configured to run off a bookmarklet, and works in IE, Firefox, Safari and Opera
Exploring the features of Firebug, with code examples covering using the console, timing code, stack traces, debugging and breakpoints, profiling, tracing HTTP requests. An excellent overview of Firebug's functionality
Using console.log outside of Firefox? Here's Joe Hewitt's simple JavaScript file to allow console.log to work on Internet Explorer, Opera and Safari. Reference the script in the page you want to debug, and add a class of debug into the HTML element, and you have a JavaScript console. There's also a command line - just like the real Firebug.
A Firefox extension from Chris Pederick which adds in a toolbar of web development goodies, from disabling JavaScript, CSS and images through to manipulating cookie information, speed reports and validator tools and error consoles.
A BetterExplained article that discusses how to reduce the initial load time of JavaScript files. Covers measuring load times, and a number of approaches to delaying the loading of a JavaScript file. Also covers minifying JavaScript and maintaining a debug version of code. Also covers an AJAX onLoad pattern to dynamically include JavaScript after page load, and HTTP caching of external JavaScript files
Douglas Crockford's JSMin ported to PHP. Open source and requires PHP5. Its a JavaScript minifier that trims out unnecessary whitespace, which chops down JavaScript files significantly.
Webkit have released Web Inspector, which is a Firebug-type tool for Webkit and Safari. Contains Firebug related features like categorising resources, JavaScript console, HTTP network monitor, load time and resource size monitors, inline JavaScript and HTML error reporting.
A Firefox extension to detect memory leaks caused by JavaScript. It pops up an alert dialogue when windows close if there is code still pointing to JavaScript objects.
A port of Douglas Crockford's command line JSMin in Perl. It removes extraneous whitespace and comments, but does not obfuscate the code.
All JavaScript implementations implement a debugger statement, which can be called at any point in your script. Also we have console.debug in Firebug.
Douglas Crockford's presentation on Advanced JavaScript. He covers topics such as inheritance, modules, debugging, efficiency and JSON.
Douglas Crockford examines the need for minimising the size of JavaScript code and compares minification and obfuscation. Obfuscation has the side-effect of introducing bugs because it changes variable names. The recommended approach is minification along with GZip compression. Since JavaScript is sent along in source form, it is impossible to hide that from a determined hacker
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.
A collection of animated 'in progress' graphics for use in Ajax applications. Includes clock-type indicators and progress bars.
Three top features of jQuery: the multitude of selectors, manipulating attributes, and tacking Ajax/JSON requests. Choses jQuery over Prototype
Christian Heilmann describes an approach to building complex web application by basing them around events, particularly around YUI's CustomEvent class.
Joe Hewitt, in this Dr Dobbs article talks about using the Firebug extensions to inspect and debug Ajax applications (or any browser-based JavaScript application). It also has CSS inspecting capabilities, editing JavaScript on the fly, inspecting HTTP request and responses, logging, breakpoint debugging and profiling. A useful howto.
Christian Heilmann offers us Dishy, a JavaScript REST API for talking to del.icio.us. Taking full advantage of del.icio.us' JSON format and the script element, Dishy doesn't need a server-side proxy. Its a useful helper class for easily getting information from del.icio.us.
Douglas Crockford's useful utility that looks for potential problems in JavaScript code. Produces warnings like improper use of eval, and places where a dot operator is better than an array-like reference. An excellent tool to use before running JavaScript through a minifier. JSLint is actually a JavaScript parser written in JavaScript
Svend Tofte puts together a detailed guide to setting up and using the Venkman debugger. From basic debugging to watchlists and call stacks, breakpoints, and more advanced techniques like meta comments and profiling. It also contains a list of other useful Venkman resources.
Apart from being an elegant debugger, FireBug offers the developer hooks that can be used from JavaScript, offering logging, assertions, performance measuring, and command line functions for inspection or traversing a document.
A tool to detect memory leaks in Internet Explorer caused by JavaScript or DOM references not being garbage collected.
All of the tools you need to poke, prod, and monitor your JavaScript, CSS, HTML and Ajax are brought together into one seamless experience, including a debugger, error console, command line, and a variety of fun inspectors.