Introduction

The book

JavaScript as a language supports functional programming but it’s quite possible to never use it in an intentionally functional way. In fact, many people practice an object-oriented programming approach instead. Functional JavaScript briefly explains the difference between an object-oriented approach and a functional approach to programming. Late in the book, there is also an exploration of how object-oriented programming and functional programming approaches can work together.

Rather than preach that there is only one right way to write JavaScript, Functional JavaScript broadens the toolkit that you have for solving problems with JavaScript. In fact, it teaches a way of thinking — a way of breaking problems down to their essential elements and composing abstractions out of the pieces to solve the problem.

Each chapter does a great job of building towards the next chapter while incorporating the concepts discussed in the prior chapters. All the while, Michael Fogus takes the reader through a sort of function inception as he breaks down problems and composes solutions from composable functions which themselves compose functions.

Who should read it

Functional JavaScript is not a book for new-comers to JavaScript. The ideal reader of Functional JavaScript has a good understanding of JavaScript and wants to understand what the functional approach to JavaScript is all about. Familiarity with [Underscore.js](underscorejs.org ‘Underscore.js’) or LoDash is not at all necessary but I think it enhances the reading experience as a number of Underscore’s functions are explained along the way.

Verdict

Functional JavaScript will not only teach you about functional programming, it will deepen your understanding of JavaScript, sharpen your JavaScript problem solving skills and increase your capacity for picking the right tool to solve the problem at hand.