Ладно, мы не говорим о чем-то более чистом, чем простая старая вода.
Сегодня мы говорим о… чистых функциях.
Что такое чистая функция в javascript?
Чистая функция - это функция, которая будет возвращать тот же вывод при том же вводе. Хм ... это непонятно, правда? Итак, вот пример:
function pureAdd(p1, p2){ return 1 + p1 + p2; }
Здесь, если значения p1 и p2 остаются неизменными, мы всегда будем получать одно и то же значение от pureAdd. Нам не нужно беспокоиться о каком-то общем состоянии или других факторах, которые меняют результат.
Ну тогда… что такое нечистая функция?
Нечистая функция - это функция, которая изменяет переменные / состояние / данные за пределами своей лексической области видимости.
Что это обозначает?
Итак, возьмите пример выше, но вместо того, чтобы просто вернуть значение, давайте также изменим внешнюю переменную:
let a = 1; function pureAdd(p1, p2){ a = p1 + p2; return 1 + p1 + p2; }
В тот момент, когда мы модифицируем что-то вне области действия функции, функция становится нечистой функцией.
Вот и все! вы только что узнали, что такое чистая и нечистая функция в javascript.