Это моя очередная статья на тему javascript. Эта статья действительно размещена в моем личном блоге по адресу https://www.vipincheriyanveetil.com/blog/javascript-higher-order-functions/.
Привет всем этим замечательным программистам 🙂
Этот пост для того, чтобы мы поняли
- Что такое функции высшего порядка?
- Пример и его использование.
Эта тема была запутанной и сложной для меня, когда я впервые услышал об этом во время интервью, которое я посещал. Я понятия не имел, что это такое, и просто сказал: «яне знаю и никогда не использовал это». Как и всем другим программистам, мне тоже было любопытно, и я хотел посмотреть, что, черт возьми, такое «функции высшего порядка». Боже мой, к моему удивлению, я обнаружил, что это то, что все уже используют при написании программ на javascript. Затем я подумал, что должен написать это как сообщение в своем блоге, по крайней мере, для справки, и это поможет мне вспомнить об этом, если я столкнусь с тем же вопросом во время моих будущих интервью. Так это тот самый пост.
Что такое «функции высшего порядка»?
Правда в том, что «Функции высшего порядка» широко используются в javascript, и каждый программист использует их, даже не подозревая об этом. Другая реальность заключается в том, что именно эта концепция делает javascript пригодным для функционального программирования. Таким образом, простое определение может заключаться в том, что Функции высшего порядка — это функции, которые могут принимать или возвращать другую функцию. Теперь мне интересно, что такое функция обратного вызова?
Обратный вызов и функция высшего порядка
Давайте сразу посмотрим на пример. Это тот же пример, который используется в одной из моих других статей.
function announce() { console.log('Yea!, the hot water is ready !') }
function boil_water(shoutIt) { console.log('Water is boiling') setTimeout(() => { shoutIt() }, 3000) }
boil_water(announce)
Согласно приведенному выше примеру
«boil_water» — это «Функция высшего порядка», поскольку она принимает функцию «объявления» в качестве входных данных.
Функция «объявить» — это функция обратного вызова, потому что она вставляется в функцию более высокого порядка с определенной целью.
Хорошо, теперь я понимаю разницу между ними. Так что они оба помогают друг другу стать теми, кто они есть.
Пожалуйста, обратитесь здесь к моей статье о обратных вызовах и дополнительной информации.
Что такое функциональное программирование?
Теперь мне должно быть легко определить и понять это. Таким образом, функциональное программирование — это форма или тип программирования, в котором функции могут передаваться другой функции в качестве параметра, а функции могут возвращаться из другой функции в качестве возвращаемых значений.
Граждане первого класса
Функции рассматриваются как граждане первого класса. Более подробное определение того же самого можно найти на https://en.wikipedia.org/wiki/First-class_citizen.
Это также означает, что Функции могут быть:
- Используется в качестве аргументов для других функций.
function just_shout(action) { return action(); }
just_shout(function () { return "hello world" }) // Returns "hello world"
- Возврат из другой функции.
function just_shout() { return function () { return "hello world" }; }
var res = just_shout(); res(); // Returns "hello world"
- Присваивается переменным.
var just_shout = function() { return return "hello world" ; }
just_shout(); // Returns "hello world"
Встроенные функции высшего порядка.
Есть несколько встроенных функций высшего порядка javascript. Я уверен, что все мы использовали их, не зная, что они являются функциями высшего порядка. Некоторые из них, которые в основном используются и знакомы, приведены ниже.
- Array.prototype.filter. (это мой любимый)
var marksList = [10, 67, 53, 39, 85]
function isPassed(value) {
return value > 45;
}
var passedMarks = marksList.filter(isPassed);
console.log(passedMarks)
// Prints
[67, 53, 85]
- Array.prototype.map
var numbersList = [3, 5, 7, 9, 11]
var multipliedBythree = numbersList.map(function(num) {
return num * 3;
});
console.log(multipliedBythree)
// Prints
[9, 15, 21, 27, 33]
Заключение
Я надеюсь, что этот пост был полезным и информативным. Итак, все просто: Функции высшего порядка — это функции, которые могут принимать или возвращать другую функцию. Мы также видели несколько примеров выше. Затем мы немного разобрались в функциональном программировании. Наконец, мы также перечислили несколько встроенных функций более высокого порядка, которые обычно используются, когда программисты начинают программировать на javascript.
Спасибо, что потратили немного времени на этот пост. Хорошего дня и получайте удовольствие от программирования.
Вы можете купить мне кофе, если хотите, на https://www.buymeacoffee.com/vipinc007