Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects. It’s the tie to go along with jQuery‘s tux, and Backbone.js‘s suspenders.

Underscore provides 60-odd functions that support both the usual functional suspects:mapselectinvoke — as well as more specialized helpers: function binding, javascript templating, deep equality testing, and so on. It delegates to built-in functions, if present, so modern browsers will use the native implementations offorEachmapreducefiltereverysome and indexOf.

A complete Test & Benchmark Suite is included for your perusal.

You may also read through the annotated source code.

The project is hosted on GitHub. You can report bugs and discuss features on theissues page, on Freenode in the #documentcloud channel, or send tweets to@documentcloud.

Underscore is an open-source component of DocumentCloud.

Downloads (Right-click, and use “Save As”)

Development Version (1.3.3) 37kb, Uncompressed with Plentiful Comments
Production Version (1.3.3) 4kb, Minified and Gzipped

Leave a comment