The ECMA – 262 Standard, ratified after Netscape and Microsoft (mostly) agreed to make JavaScript and JScript interoperable.
Resources:
Most of these are library-independent. Check my jQuery page for more, since I’ve adopted that for my own uses and have therefore focused on gathering more resources for it…
| Category | Date | Link | Notes |
|---|---|---|---|
| Canvas and Graphing | May 7’13 | Two.js | An intriguing API that supports a number of back-ends (svg, canvas and WebGL) |
| Feb 17’13 | GoJS | An amazing charting library with support for flowcharts, swimlanes, and a number of business process diagrams. | |
| Sep 25’12 | Ejecta | A fast GL-backed canvas library for iOS | |
| Jun 25’11 | paper.js | Amazing open source vector graphics scripting framework that runs on top of the HTML5 Canvas | |
| Apr 21’10 | Akibahara | A wonderful set of small libraries to clone 8-bit era arcade games, | |
| Jan 19’10 | Highcharts | A very comprehensive charting library. | |
| Jan 1’10 | Raphael | An amazing vector library, with a charting companion that will knock your socks off. | |
| Dec 3’09 | Parcycle: A Particle System with HTML5 canvas | Pretty damn amazing. | |
| Nov 6’08 | JavaScript Information Visualization Toolkit | A pretty comprehensive set of resources | |
| Dec 16’07 | Safari Programming Topics | ||
| Firefox 1.1 Canvas Support | |||
| Timeline | a draggable DHTML timeline widget | ||
| Forms and Input | Feb 1’13 | Kalendae | a very impressive, framework-agnostic date picker |
| Dec 16’07 | Auto-Tab | ||
| JavaScript Calendar | |||
| HTML Tabbed Dialog Widget | |||
| XLoadTree | dynamically loading tree control | ||
| Text Formatting | Codeblock.js | A nice way to provide code samples. | |
| Feb 1’13 | Rainbow | A nice syntax highlighter | |
| Jan 1’10 | google-code-prettify | A source code prettifier with support for multiple programming languages. | |
| jsMath: A Method of Including Mathematics in Web Pages | An amazing (re)interpretation of TeX | ||
| Oct 21’09 | JavaScript Prettifier | Simple to use and effective | |
| Sep 17’09 | To Title Case | A port of Gruber’s title case script | |
| Dec 16’07 | Showdown | a Markdown port | |
| Highlight.js | two interesting syntax highlighters | ||
| Syntax Highlighter | |||
| Diff Algorithm | |||
| Search Engine Keyword Highlight | yes, I know it’s cheating – but it works fine when you don’t want to hack your back-end. | ||
| UI elements | Jun’12 | Mousetrap | a very nice way to handle keyboard shortcuts |
| Feb 26’11 | Color Wheel | A great color picker component | |
| Sep 17 | Roar | Two Growl-like components done with MooTools | |
| Window.Growl 2.0 | |||
| Timeframe | Amazing calendar widget with support for date range selection. | ||
| Tools | May’12 | javascript.tmbundle | An indispensable TextMate add-on (the autocompletion features alone are priceless) |
| Apr’11 | PhantomJS | A complete WebKit web stack, made scriptable via JavaScript. Awesome for testing, rendering pages to raster formats, etc. | |
| 3D | Mar’12 | cannon.js | An amazing physics engine. |
| Mar’11 | adamia-3d | A pure JS library with an interesting math component. | |
| CopperLicht | A full-featured 3D engine. | ||
| three.js | Probably the current (best) bet to work with WebGL. (some interesting samples here | ||
| Toolkits | May’13 | Bookshelf.js | A sane ORM. |
| Feb’13 | PouchDB | A local storage wrapper with the ability to work offline and sync with a remote source. | |
| anima.js | A tiny, but flexible animation library. | ||
| uilayer | A very nice abstraction for managing content positioning and animation using layers (and 3D transforms). | ||
| Rekapi | A keyframe animation library with tweening. | ||
| Aug’11 | Underscore | A small but powerful functional programming toolkit. | |
| Mar’11 | php.js | Useful for porting across app logic. | |
| Feb 20’11 | CoffeeScript | Sanity, restored. | |
| Nov 7’09 | Closure | A compiler, library and toolchain by Google. | |
| Dec 16’07 | Taffy DB | an interesting “database” library. | |
| Prototype | heavily driven by Rails | ||
| Cross-Browser | |||
| dojo Toolkit | a UI toolkit for dynamic website implementation | ||
| Moo.fx | very lightweight (3KB) | ||
| JQuery | arguably the best for structured programming. | ||
| Server-side | May 16’10 | node.js | An event-oriented framework for doing I/O using Google’s V8 engine. |
| UI Frameworks | Apr 10’10 | UKI | A simple UI kit for complex web apps that was used to do a complete Mail.app mock-up |
| Nov 7’09 | Cappuccino | Utterly amazing, and used by very complex web apps like 280 Slides and Mockingbird | |
| Media | Dec 16’07 | Smooth SlideShow Library | |
| OpenLayers | a map navigation UI | ||
| Ken Burns Slideshows | |||
| iPhoto-like image resizing using Javascript | |||
| GreyBox | a Mac OS X like popup. | ||
| fadomatic | cross-browser DIV fader | ||
| Walter Zorn | vector drawing, graphing, and other amazing stuff | ||
| image cross fader | |||
| Development | Apr 17’10 | Learning Advanced Javascript | An interactive tutorial. |
| Dec 16’07 | Jash: JavaScript Shell | ||
| Escaping regular expression characters | |||
| JSLint | an interesting lint adaptation for JavaScript | ||
| Lumberjack | a set of logging utilities | ||
| JSAN | CPAN for JavaScript, of a sort | ||
| Mouse Input | Dec 16’07 | Drag-and-Drop Sortable Lists | |
| Drag-and-Drop Library | |||
| Mouse Wheel Programming | |||
| Pie Menus | a nice Pie Menus Menus implementation. | ||
| Tables | Dec 16’07 | ActiveScripts Grid | an impressive grid control |
| Sortable Table | |||
| Standartista Table Sorting | |||
| Sortable and Groupable Table | |||
| Ajax related | Dec 16’07 | LiveSearch | the stuff I used on this site’s search box for a while |
| Everything about the XML HTTP Request intrinsic object | that which is now being dubbed Ajax. I wonder how far we are from Tide. | ||
| JPSPAN | a server-to- JavaScript bridge using the XML HTTP object and some very clever data conversion. | ||
| SAJAX | a similar effort geared towards PHP |
Snippets:
Associative Arrays in JavaScript
// Taken from: // http://philikon.wordpress.com/2010/04/20/associative-arrays-in-javascript/ function dict () { var keys = []; var values = []; return { get: function (key) { return values[keys.indexOf(key)] }, set: function (key, value) { var i = keys.indexOf(key); if (i === -1) { i = keys.length; } keys[i] = key; values[i] = value; }, del: function (key) { var i = keys.indexOf(key); keys.splice(i, 1); values.splice(i, 1); }, keys: function () { return keys.slice(); }, values: function () { return values.slice(); }, }; }
