

The current version of this specification was finalized at the end of 2009 and is known as ECMAScript 5 (or ECMAScript 5.1 to be very specific). Technically, JavaScript is a specific implementation of an open language specification called ECMAScript. To understand why Underscore is so popular, we need to discuss the ECMAScript 5 ( ES5) specification and what it meant for JavaScript as a programming language.

This book will explore Underscore by presenting a series of more involved examples than the ones provided with its library documentation. It also has very good online documentation (including annotated source code) that is available at, which is another distinctive attribute of a good software library. Underscore is representative of a good JavaScript utility library as it provides solutions for a specific problem domain rather than being a catchall utility. At the time of writing this book, Underscore has reached version 1.8.3, which will be the version used throughout all examples. Underscore is used in Backbone.js as both have the same author, and after its launch it has become one of the most popular JavaScript libraries. Version 1.0 of Underscore was launched in 2010 around the time when single page applications started to gain more ground. By using Underscore JavaScript gains a better level of usability that makes coding easier and more expressive on a similar level to other general purpose programming languages. It accomplishes this by providing missing functional programming features to JavaScript. The library presented in this book is called Underscore and provides an extensive set of functions that simplify and enhance handling of JavaScript objects, arrays, and functions. A single page application (also known as SPA) has the user interface rendering and navigation happening in the browser rather than on the server.
