Learning Functional JavaScript is for any JavaScript programmer (both backend and frontend) who has a firm grasp of the language but is looking to broaden their skillset. No prior experience with functional programming concepts is necessary.

Knowledge about basic JavaScript concepts such as JavaScript objects and functions is a prerequisite.

About This Book

Get to grips with data flow using immutability and learn how to reason with code
Eliminate the common loop problems efficiently using Recursion
Boost your performance by using lazy functions and employing laziness to increase performance
Play with the included sample application – a text-based adventure game – to see the techniques put together

Explore higher-order functions, what they are and how to work with them
Solve issues related to asynchronous methods effectively by using promises
Use a library such as immutable.js to implement immutability
Implement immutability with Facebook’s React for super fast user interfaces
Combine a “functional core” to build a web application where most of the code is functional
Make efficient use of recursion with big data sets to make code easier to visualize

In Detail

Along with being tried and trusted, functional programming is one of the biggest current trends in programming. Its focus on side-effect free code, unadorned data manipulation and simple structures promote a coding style that reduces bugs, and lifts the level of abstraction to a point where we can achieve more with less code. All topics discussed in the course can be used to various degrees in any code-base – even if your daily work is with a huge object-oriented project, the techniques discussed will certainly be useful.

Learning Functional JavaScript will show you how to build powerful abstractions by combining many small and simple functions, and how to strip your data modeling to the necessities. We start by investigating the power of higher-order functions by diving right into the implementation of the sample application. We then elaborate by partially applying and composing functions before we end up with lazy evaluation to boost our abstraction power and performance.

Right from the start we'll dive into the implementation of a text-based adventure game. We will also see how function composition is used to solve specific problems in this domain by combining highly generic functions. We learn function programming techniques that help improve asynchronous code used to load the game from disk.

Later we'll become acquainted with a few other examples as well, as we learn about designing applications around an immutable data structure. And we end our journey with a discussion of recursion and how it relates to lazy data structures, and show examples of using previously discussed techniques on infinite data sets.

At the end of the course, you’ll be proficient with the basic functional programming techniques and will be able to optimize your JavaScript code by applying them. Learning Functional JavaScript teaches you all the basic functional programming techniques and shows you how to apply them to JavaScript, and how they can be used to solve highly practical problems.

Style and Approach

This video course is a comprehensive guide with live demonstrations of the constructs explained and practical results for thorough understanding.

Authors

Christian Johansen

Christian Johansen is a passionate programmer working with Oslo-based consultancy Kodemaker. He's a man with an eclectic background, having worked with everything from Unix systems tuning and ops to various server-side applications and JavaScript heavy frontend development. Christian is the author of Test-Driven JavaScript Development, and he maintains several open-source projects, including the JavaScript test-framework Buster.JS and the popular mocking framework Sinon.JS. Functional programming is a long-standing interest, most recently practiced with Clojure and JavaScript.