Чиста функція
Коротко: Чиста функція (pure function) - це функція, яка завжди повертає той самий результат за однакових вхідних даних і не має побічних ефектів (не змінює зовнішні змінні, DOM, файли, мережу тощо).
Детальне пояснення
Чиста функція - фундаментальне поняття функціонального програмування. Вона передбачувана, тестована і не залежить від зовнішнього стану.
Дві ключові ознаки:
- Детермінованість - один і той самий ввід → завжди один і той самий вивід.
- Відсутність побічних ефектів - функція нічого не змінює за своїми межами.
Приклад чистої функції
function add(a, b) {
return a + b;
}Завжди повертає однаковий результат і нічого не змінює в зовнішньому світі.
Приклад нечистої функції
let counter = 0;
function increase() {
counter++; // побічний ефект - змінює зовнішню змінну
return counter;
}Ця функція нечиста,
тому що її результат залежить від зовнішнього стану (counter)
і вона його змінює.
Інші приклади нечистих функцій
- Читання/запис у файл або базу даних
- Зміна DOM
- Виклик
alert()чиconsole.log() - Використання випадкових чисел (
Math.random()) - Використання поточного часу (
Date.now())
Навіщо потрібні чисті функції
Легко тестувати - результат залежить лише від аргументів. Легко кешувати (memoization). Безпечні для паралельного виконання. Підвищують передбачуваність і читабельність коду.
Підсумок
| Властивість | Чиста функція |
|---|---|
| Повертає однаковий результат | Так |
| Залежить від зовнішніх змінних | Ні |
| Змінює зовнішній стан | Ні |
| Приклад | Math.max(1, 5) |
| Протилежність | "Брудна" функція з побічними ефектами |
В одній фразі:
Чиста функція - це функція, яка не впливає на зовнішній світ і завжди веде себе однаково за однакового вводу.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.