Функции
Люди думают, что компьютерная наука — это искусство гениев, но на самом деле все наоборот: множество людей делают вещи, которые строятся друг на друге, как стена из мини-камней. Дональд Кнут
Функции — это хлеб и масло программирования JavaScript. Концепция искривления части кода в блоке имеет много значений. В JavaScript функции являются гражданами первого класса. Гражданин первого класса в основном означает, что функции могут делать все, что могут другие.
-
Функции могут быть присвоены переменной
-
Функция может быть передана в качестве аргумента
-
Функция может быть возвращена из функции
Программа — это набор блоков кода, которые называются функциями. Функции в программировании такие же, как функции в математике.
В математике мы пишем функции следующим образом f(x)=x+2
Это просто означает, что функция принимает x в качестве входных данных и возвращает x+2. Теперь давайте создадим программу, если вышеупомянутая функция .
function addTwo(x){
return x+2
}
AddTwo — это программная реализация функции f(x)=x+2 . Функция addTwo является чистой функцией
Чистая функция
Чтобы функция была чистой, она должна удовлетворять следующим двум условиям,
-
*** При одинаковом входе должен возвращаться одинаковый выход. ***
-
Отсутствие побочных эффектов.
Теперь попробуем защитить наше утверждение о том, что функция addTwo является чистой. Мы должны проверить, удовлетворяет ли функция addTwo вышеупомянутым условиям, если да, то мы успешно защитим наше утверждение.
*** При одинаковых входных данных должен быть возвращен одинаковый выход ***
Передадим 2 в качестве входных данных.
console.log(addTwo(2))
It will return 4
Теперь неважно, сколько раз мы передадим значение 2, функция addTwo всегда будет возвращать 4. Итак, ясно, что наша функция addTwo удовлетворяет первому условию функции Pure.
Теперь попробуем проверить второе условие.
*** Отсутствие побочных эффектов **
что такое побочный эффект?
Когда функция изменяет или полагается на что-либо вне своих параметров, тогда она имеет побочные эффекты.
Приведенная выше наша функция не использует ничего вне своих параметров, а значит, удовлетворяет второму условию чистой функции.
Из этого следует, что наша функция *** addTwo является чистой функцией***.
Принцип идентификации чистой функции.
Если вызов функции без использования ее возвращаемого значения имеет смысл, то это не чистая функция.
Почему вы должны использовать чистые функции?
- Легко рефакторить и перемещать.
- Независимость от внешнего мира.
- Самый простой многократно используемый блок кода.
- Невосприимчивость к ошибкам за пределами своей области применения.
- Делает программы более адаптируемыми к будущим изменениям
Заключение
Компьютерная программа — это набор небольших блоков кода, которые называются функциями.
Чистые функции — это функции, которые при одинаковом входе возвращают одинаковый выход, и чистые функции не имеют побочных эффектов. Чистые функции не зависят от внешних факторов и легко поддаются рефакторингу.