# What is a pure function?

Angelos Chalaris · Dec 19, 2021 ·

JavaScript, Function

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:

• Given the same input, it always returns the same output.
• Causes no side effects outside the function's scope.

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.

## Recommended snippets

• ### Understanding higher-order functions in JavaScript

JavaScript, Article

Learn everything you need to know about higher-order functions with this short guide and level up your programming skills.

• ### What are the differences between arrow functions and regular functions in JavaScript?

JavaScript, Article

JavaScript's arrow functions are seemingly the same as regular functions, but there are some important differences you need to know.

• ### What are JavaScript closures?

JavaScript, Article

Learn and understand closures, a core concept in JavaScript programming, and level up your code.