Вопрос проверяет понимание концепции чистых функций, важной для функционального программирования и предсказуемости кода.
Чистая функция — это функция, которая:
- Всегда возвращает одинаковый результат для одинаковых аргументов.
- Не имеет побочных эффектов (не изменяет внешние данные).
Пример: const sum = (a, b) => a + b;
Критерии чистоты
Детерминированность
При одинаковых входных данных — одинаковый результат.
Пример нечистой функции: Math.random() (возвращает разное).
Отсутствие побочных эффектов
Не меняет глобальные переменные, не мутирует аргументы.
Пример нечистой функции:
let counter = 0;
function increment() { counter++; } // Меняет внешнее состояниеПримеры
Чистая функция:
function multiply(a, b) {
return a * b;
}Нечистая функция:
let tax = 0.2;
function calculateTotal(price) {
return price * (1 + tax); // Зависит от внешней переменной
}Преимущества чистых функций
Проще тестировать (не нужны моки).
Понятнее (нет скрытых зависимостей).
Можно кэшировать (например, мемоизация).
Вывод:
Чистые функции делают код предсказуемым и удобным для рефакторинга. Они широко используются в React (редьюсеры) и функциональном программировании.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию