Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: pure, function, side, effect

Почему использование внешней переменной может считаться плохим подходом с точки зрения чистоты функций?

Вопрос проверяет понимание чистых функций и предсказуемости поведения кода.

Короткий ответ

Чистая функция должна зависеть только от своих аргументов и не изменять внешнее состояние. Если функция использует внешнюю переменную, результат может измениться без изменения аргументов. Это усложняет тестирование и делает код менее предсказуемым. Поэтому в функциональном стиле стараются избегать внешних зависимостей.

Длинный ответ

Использование внешних переменных связано с понятием чистых функций.

1) Что такое чистая функция

Определение: Pure function — функция, которая:

  1. Возвращает одинаковый результат при одинаковых аргументах.

  2. Не имеет побочных эффектов.

Пример чистой функции:

function sum(a, b) {
  return a + b;
}

2) Что происходит при использовании внешних переменных

Пример:

let tax = 0.2;

function calc(price) {
  return price * tax;
}

Проблемы:

  1. Результат зависит не только от аргументов.

  2. Внешнее состояние может измениться.

  3. Поведение становится менее предсказуемым.

3) Почему это плохо на практике

  1. Сложнее тестировать.

  2. Сложнее переиспользовать.

  3. Повышается риск скрытых багов.

4) Когда это допустимо

Иногда это нормально:

  1. Конфигурация.

  2. Константы.

  3. Dependency injection.

Вывод: внешние переменные делают функцию зависимой от контекста, поэтому чистые функции стараются использовать только аргументы.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#pure

#function

#side

#effect

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию