TGViewer
Frontend | Вопросы собесов Frontend | Вопросы собесов @easy_javascript_ru · 17.5K subscribers
Post #81 7.35K
Что такое чистая функция ?
Спросят с вероятностью 10%

Чистая функция — это концепция, особенно популярная в функциональном программировании, которая описывает функцию, обладающую следующими характеристиками:

1️⃣ Детерминированность: Возвращаемое значение зависит только от её входных параметров и не изменяется при повторных вызовах с теми же параметрами. Это означает, что функция всегда возвращает один и тот же результат при одинаковых входных данных, не обращаясь при этом к внешним состояниям или данным.

2️⃣ Отсутствие побочных эффектов: Не вызывает побочных эффектов в приложении, то есть не изменяет состояние программы или внешнего окружения (например, не изменяет глобальные переменные, не записывает данные на диск, не выводит информацию на экран и т.д.). Все, что делает чистая функция — это обрабатывает входные данные и возвращает результат.

Пример:
function add(a, b) {
return a + b;
}

Функция
add является чистой, потому что она всегда возвращает одно и то же значение для одних и тех же аргументов и не имеет побочных эффектов.

Пример нечистой функции:
let counter = 0;

function incrementCounter(value) {
counter += value;
}


Функция incrementCounter не является чистой, так как она изменяет глобальную переменную counter, что является побочным эффектом. Также результат выполнения функции зависит от внешнего состояния (значения counter), что нарушает принцип детерминированности.

Преимущества чистых функций:

✅ Простота тестирования: Легко тестировать, так как их поведение зависит только от входных данных.
✅ Предсказуемость: Отсутствие побочных эффектов и зависимость только от входных параметров делает поведение их предсказуемым.
✅ Повторное использование: Могут быть легко переиспользованы в различных частях программы.
✅ Модульность: Программы, построенные с использованием их, обычно обладают высокой модульностью и легкостью в поддержке и расширении.

Чистые функции являются основой функционального программирования и способствуют написанию более чистого, понятного и управляемого кода.

➡️ Примеры ответов
➡️ Список всех вопросов на Frontend Developer

🧩 Идущий | 🔐 Собесы | 🔐 Тестовые
  • 👍 31
  • ❤ 3
  • 🔥 1
  • 😁 1
More from @easy_javascript_ru
  1. Oct 18, 2026Post #3049
  2. Oct 18, 2026🤔 Что такое делегирование? Делегирование событий (Event Delegation) — это техника, при ко…
  3. Oct 17, 2026🤔 Откуда взялся CSS? CSS (Cascading Style Sheets) появился в 1996 году для отделения стил…
  4. Oct 17, 2026🤔 Какие значения будут являться falsy значениями? В JavaScript значения, которые при прив…
  5. Oct 16, 2026🤔 Что такое meta теги? Meta-теги – это специальные HTML-теги, которые содержат метаинформ…
  6. Oct 15, 2026🤔 Какие преимущества у di? Dependency Injection (DI) – это паттерн проектирования, которы…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →