В този блог ще разгледаме какво е функционално програмиране в javascript.
Какво е функционално програмиране?
И така, функционалното програмиране е програмна парадигма като обектно-ориентирания език за програмиране (OOPS). Всяка програмна парадигма има различни правила за структуриране на нашия код за решаване на всеки проблем. Функционалното програмиране е изобретено през 50-те години на миналия век, но набира популярност през последните няколко години.
Функционалното програмиране разделя проблем на много малки и многократно използваеми проблемни функции, които приемат някои входни данни и връщат резултат и не мутират или променят данни.
Основните предимства на тези малки функции за многократна употреба са лесни за отстраняване на грешки и тестване, те са по-сбити и мащабируеми, защото можем да изпълняваме много извиквания на функции паралелно и да се възползваме от множество ядра на нашия процесор. Така че това са основната причина функционалното програмиране да придобие голяма популярност. Но също така трябва да знаете, че javascript е многопарадигмен език за програмиране, а не чисто функционален език за програмиране като Closure и Haskell.
Както вече знаете, функцията на javascript е първокласен гражданин, което означава, че можем да третираме функция като променлива, можем да присвоим функция на променлива и да предадем функция като аргумент и също да върнем функция.
Пример:присвояване на функция на променлива.
Пример:върнете функция.
Пример:функциятапреминава като аргумент.
Функция от по-висок ред
Функция от по-висок ред приема функция като аргумент или връща функция, или и двете. Така че вместо да работи върху която и да е стойност като низ, булева стойност или числа, функцията на javascript може да отиде по-високо и също да работи върху функция, ето защо тези функции се наричат функция от по-висок ред и може да не знаете, но има шанс, вече сте използвали многократно тези функции от по-висок ред, като функцията mapиsetTimeoutкоито приемат функция като аргумент.
Пример: map и setTimeout
Функционален състав
Тъй като вече изучаваме, във функционалното програмиране пишем много малки и многократно използвани функции и след това ги композираме, за да изградим по-сложна функция за решаване на проблем от реалния свят.
Можем да научим това чрез пример, в който вземаме низ като аргумент и преобразуваме този аргумент в малки букви и след това обгръщаме този вход в елемент div, за да направим това, можем да използваме многократно използваем функционален компонент на всяка стъпка.
В този пример първият метод, който е функция със стрелка, приема аргумент, за да го преобразува в малки букви и след това втората функция wrapInDiv, която приема низ като аргумент и обвива този низ в елемент Div. Предаваме първата функция, която е convertToLowerCase, като аргумент на wrapInDiv, който обвива резултата convertToLowerCase с елемент Div.