Backbone.js provides structure to JavaScript applications by supplying models, collections, views and connecting them via a RESTful JSON interface. It offers models with key-value binding and events, collections with enumerable functions, and views with declarative event handling. Templates can be used to render views by passing a model's JSON representation. Routers help manage navigation and application state.