Чистые функции

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

Нечистые функции

С другой стороны, нечистая функция, также известная как недетерминированная функция, — это функция, которая изменяет состояние, данные или переменные за пределами своей области действия, то есть побочные эффекты. Примерами побочных эффектов являются console.log, запросы DOM, изменение ввода, изменение файловой системы и HTTP-вызовы. Нечистые функции равны противоречивым результатам. Нечистые функции зависят от времени. Важно, когда и куда их вызывают.

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

  • Легче читать.
  • Легче протестировать.
  • Легче отлаживать.

Вы не сможете постоянно писать чистые функции. Я не хочу, чтобы вы думали, что нечистые функции — это плохо. Нечистые функции имеют свое применение, и нет никакого способа избежать их (да ладно, вам просто нужно иногда использовать console.log).