Ответ
Чистая функция должна обладать двумя ключевыми свойствами:
-
Детерминированность — при одинаковых входных данных всегда возвращает одинаковый результат. Не зависит от внешнего состояния (глобальных переменных, времени и т.д.).
-
Отсутствие побочных эффектов — не изменяет внешнее состояние (не мутирует входные параметры, не вызывает API, не изменяет DOM и т.д.).
Пример чистой функции:
function sum(a, b) {
return a + b;
}
Пример НЕ чистой функции:
let counter = 0;
function increment() {
counter++; // Мутация внешней переменной
return counter;
}