Wyrażenia funkcyjne są jednym z dwóch głównych sposobów definiowania funkcji w JavaScript, obok deklaracji funkcji. Są to funkcje anonimowe przypisywane do zmiennych lub używane jako argumenty dla innych funkcji. Wyrażenia funkcyjne pozwalają na tworzenie bardziej dynamicznych i elastycznych struktur kodu.
Definiowanie wyrażenia funkcyjnego
Wyrażenie funkcyjne tworzymy, przypisując funkcję anonimową do zmiennej. Funkcja ta może być następnie używana wszędzie tam, gdzie dostępna jest zmienna.
let greet = function(name) {
console.log("Hello, " + name + "!");
};
greet("Alice"); // Wyświetla "Hello, Alice!"
Wyrażenia funkcyjne a deklaracje funkcji
Główna różnica między wyrażeniem funkcyjnym a deklaracją funkcji polega na hoistingu. Deklaracje funkcji są “wynoszone” na górę zakresu, co oznacza, że mogą być wywoływane przed ich zadeklarowaniem w kodzie. Wyrażenia funkcyjne, jako przypisania do zmiennych, podlegają hoistingu zmiennych, ale nie samych funkcji.
// Wywołanie deklaracji funkcji przed jej zadeklarowaniem
functionDeclaredBefore();
function functionDeclaredBefore() {
console.log("Działa, bo to deklaracja funkcji.");
}
// Wywołanie wyrażenia funkcyjnego przed jego zdefiniowaniem
// functionExpressionBefore(); // Błąd: functionExpressionBefore is not a function
let functionExpressionBefore = function() {
console.log("Nie działa, bo to wyrażenie funkcyjne.");
};
Podsumowanie
Wyrażenia funkcyjne oferują elastyczność i mocne narzędzie do tworzenia funkcji w JavaScript. Pozwalają na przypisanie funkcji do zmiennych, przekazanie jako argumenty do innych funkcji i tworzenie IIFE dla izolacji kodu.
Jeżeli chcesz przyśpieszyć swoją naukę chciałbym polecić mój kurs video JavaScript w którym nauczysz się tego języka od podstaw do zaawansowanych jego koncepcji.