Функція без стану
Коротко: Функція без стану (stateless function) - це функція, яка не зберігає і не змінює внутрішні дані між викликами. Вона завжди поводиться однаково при однаковому наборі вхідних аргументів.
Детальне пояснення
Функція "без стану" нічого не пам'ятає про минулі виклики і не залежить від зовнішніх змін. Кожен виклик - ізольоване обчислення, повністю визначене вхідними параметрами.
Тобто така функція:
- не має внутрішньої пам'яті (жодних лічильників, кешів, прапорців);
- не використовує глобальні змінні;
- не змінює нічого зовні (DOM, файли, мережеві запити).
Приклад функції без стану
function sum(a, b) {
return a + b;
}
console.log(sum(2, 3)); // 5
console.log(sum(2, 3)); // 5 - завжди однаковоКожен виклик повністю незалежний - результат залежить лише від вхідних даних.
Приклад функції зі станом
let counter = 0;
function increment() {
counter++;
return counter;
}
increment(); // 1
increment(); // 2 - результат залежить від минулого викликуТут функція "пам'ятає" стан (counter),
тому вона stateful - "зі станом".
Де важливі stateless-функції
- У функціональному програмуванні - основа чистих обчислень.
- У React (наприклад, "stateless components") - компоненти, які просто відображають дані без власного стану.
- У тестованому коді - передбачувані результати без залежності від оточення.
ПІДСУМОК
| Ознака | Stateless функція |
|---|---|
| Зберігає дані між викликами | Ні |
| Змінює зовнішній стан | Ні |
| Залежить лише від аргументів | Так |
| Завжди повертає те саме при однаковому вводі | Так |
| Приклад | Math.max(a, b) |
В одній фразі:
Функція без стану - це функція, у якої немає "пам'яті" про минулі виклики, і результат завжди залежить лише від вхідних даних, а не від контексту.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.