Czym jest funkcja wyższego rzędu w JavaScript?

Funkcje wyższego rzędu to funkcje, które mogą przyjmować inne funkcje jako argumenty lub zwracać je jako swoje wyniki. Są one fundamentalnym aspektem JavaScriptu, umożliwiającym pisanie bardziej zwięzłego i ekspresyjnego kodu, szczególnie przy pracy z tablicami, obiektami i asynchronicznymi operacjami. Dzięki nim, JavaScript staje się bardzo elastycznym językiem programowania, wspierającym paradygmaty funkcyjne.

Przykład funkcji wyższego rzędu

Załóżmy, że chcemy przefiltrować tablicę liczb, pozostawiając tylko te, które są parzyste. Użyjemy do tego funkcji wyższego rzędu filter, która jest wbudowana w prototyp tablicy w JavaScript.

// Funkcja sprawdzająca, czy liczba jest parzysta
function isEven(number) {
    return number % 2 === 0;
}

// Tablica liczb
let numbers = [1, 2, 3, 4, 5, 6];

// Użycie funkcji filter z funkcją isEven jako argumentem
let evenNumbers = numbers.filter(isEven);

// Wyświetlenie parzystych liczb
console.log(evenNumbers);

Kolejny przykład

<!DOCTYPE html>
<html>
<head>
    <title>Funkcje wyższego rzędu w JavaScript</title>
</head>
<body>
    <h3>Parzyste liczby z tablicy</h3>
    <button onclick="displayEvenNumbers()">Wyświetl parzyste liczby</button>
    <p id="result"></p>

    <script>
        function isEven(number) {
            return number % 2 === 0;
        }

        let numbers = [1, 2, 3, 4, 5, 6];

        function displayEvenNumbers() {
            let evenNumbers = numbers.filter(isEven);
            document.getElementById('result').innerHTML = evenNumbers.toString();
        }
    </script>
</body>
</html>

W tym przykładzie, użytkownik może wyświetlić parzyste liczby z tablicy klikając przycisk, co pokazuje, jak można łatwo integrować logikę JavaScriptu z elementami HTML, używając funkcji wyższego rzędu.

Podsumowanie

Funkcje wyższego rzędu w JavaScript pozwalają na tworzenie potężnych abstrakcji, umożliwiając przekazywanie funkcji jako argumentów oraz ich zwracanie. Takie podejście sprzyja pisaniu bardziej modularnego i łatwiejszego do testowania kodu. Dzięki funkcjom wyższego rzędu, JavaScript staje się bardziej ekspresyjny i funkcjonalny, co jest szczególnie przydatne w obszarach takich jak manipulacja tablicami, asynchroniczne operacje i programowanie reaktywne. Wykorzystanie tych funkcji jest kluczowe dla zrozumienia nowoczesnego JavaScriptu.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video JavaScript w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top