# What is a pure 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.

## More like this

• Collection · 8 snippets

### Functional Programming

Get started with functional programming in JavaScript with this collection of introductory snippets.

• JavaScript ·

### What is recursion and when is it useful?

Recursion is a very important programming concept all developers should be familiar with.

• JavaScript ·

### What is the difference between then and finally in a JavaScript promise?

A JavaScript promise's `then` and `finally` methods seem very similar. But there are a few important differences you need to keep in mind.

• JavaScript ·

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

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

Start typing a keyphrase to see matching snippets.