The document introduces functional programming with JavaScript. It discusses that functional programming uses functions as the basic unit of abstraction. The document outlines key concepts of functional programming like anonymous functions, first-class functions, lexical closure, and higher-order functions. It also covers common functional patterns in Underscore.js like chaining, mapping, filtering and reducing operations. The document provides examples of functional programming concepts and recommends resources to learn more about functional JavaScript.