Discover Functional JavaScript was named one of the best new Functional Programming books by BookAuthority!

JavaScript is the first language to bring Functional Programming to the mainstream. It has first-class functions and closures. They open the way for functional programming patterns.

First-Class Functions

Functions are first-class objects. Functions can be stored in variables, objects or arrays, passed as arguments to other functions or returned from functions.

//stored in variable
function doSomething(){
}

//stored in variable
const doSomething = function (){ };

//stored in property
const obj = { 
   doSomething : function(){ } 
}

//passed as an argument
process(doSomething);

//returned from function
function createGenerator(){
  return function(){
  }
}

Lambdas

A lambda is a function that is used as a value.

In JavaScript, functions are first-class objects, so all functions can be used as values. All functions can be lambdas with or without a name. I actually suggest favoring named functions.

Functional Array Toolbox

Basic Toolbox

filter() selects values from a list based on a predicate function that decides what values should be kept.

const numbers = [1,2,3,4,5,6];
function isEven(number){
  return number % 2 === 0;
}
const evenNumbers = numbers.filter(isEven);

A predicate function is a function that takes one value as input and returns true/false based on whether the value satisfies the condition. isEven() is a predicate function.

Discover Functional JavaScript was named one of the best new Functional Programming books by BookAuthority!

For more on applying functional programming techniques in React take a look at Functional React.

Learn functional React, in a project-based way, with Functional Architecture with React and Redux.

Follow on Twitter