Функции высшего порядка
«Функциональное программирование — раздел дискретной математики и парадигма программирования, в которой процесс вычисления трактуется как вычисление значений математических функций.»
Функции первого класса
JavaScript обрабатывает функции как объекты первого класса (Function objects).
let greeting = () => 'Hello, World!'
greeting() // 'Hello, World!'
Функции высшего порядка
Функции, которые принимают функцию в качестве аргумента или возвращают функцию. Встроенные примеры: map(), filter(), reduce().
Пример: удвоение чисел
// Традиционный цикл
const doubled = []
for (let i = 0; i < nums.length; i++) {
doubled.push(nums[i] * 2)
}
// С map() — функциональный подход
const doubled = nums.map(n => n * 2)
Функции обратного вызова (callback)
«Callback — функция, переданная другой функции в качестве аргумента и впоследствии вызванная по завершении какого-либо действия.»
function doTwice(fn) {
fn()
fn()
}
doTwice(() => console.log('Привет!'))
// Привет!
// Привет!