Pure functions are one of the most important concepts to learn and understand, especially if you're interested in functional programming.
A pure function is a function that satisfies the following two conditions:
Let's look at some examples of pure and impure functions:
// Pure
const add = (x, y) => x + y;
const concat = (arr, value) => [...arr, value];
const order = arr => [...arr].sort((a, b) => a - b);
// Impure
const addRandom = x => x + Math.random();
const pushConcat = (arr, value) => { arr.push(value); return arr; }
const reorder = arr => arr.sort((a, b) => a - b);
Understanding if a function is pure or impure is generally pretty easy. An easy trick to tell if a function is impure is if it makes sense to call it without using its return value or if it doesn't return any. These usually indicate that a function causes side effects.
Pure functions are more reliable and reusable, which in turn makes them easier to reason about. It's usually preferable to use a pure function over an impure one if constraints allow it.
Snippet collection
Prepare for your next JavaScript interview with this collection of interview questions and answers.
JavaScript, Function
Recursion is a very important programming concept all developers should be familiar with.
JavaScript, Function
Learn everything you need to know about higher-order functions with this short guide and level up your programming skills.
JavaScript, Function
JavaScript's arrow functions are seemingly the same as regular functions, but there are some important differences you need to know.