Вопрос проверяет понимание чистых функций и предсказуемости поведения кода.
Чистая функция должна зависеть только от своих аргументов и не изменять внешнее состояние. Если функция использует внешнюю переменную, результат может измениться без изменения аргументов. Это усложняет тестирование и делает код менее предсказуемым. Поэтому в функциональном стиле стараются избегать внешних зависимостей.
Использование внешних переменных связано с понятием чистых функций.
Определение: Pure function — функция, которая:
Возвращает одинаковый результат при одинаковых аргументах.
Не имеет побочных эффектов.
Пример чистой функции:
function sum(a, b) {
return a + b;
}
Пример:
let tax = 0.2;
function calc(price) {
return price * tax;
}
Проблемы:
Результат зависит не только от аргументов.
Внешнее состояние может измениться.
Поведение становится менее предсказуемым.
Сложнее тестировать.
Сложнее переиспользовать.
Повышается риск скрытых багов.
Иногда это нормально:
Конфигурация.
Константы.
Dependency injection.
Вывод: внешние переменные делают функцию зависимой от контекста, поэтому чистые функции стараются использовать только аргументы.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию