Jakie funkcje istnieją w JavaScript?
sobes.tech AI
Odpowiedź od AI
W JavaScript istnieją następujące rodzaje funkcji:
-
Deklaracje funkcji (Function Declarations): Podstawowa składnia do definiowania funkcji. Są podnoszone (hoisted) podczas kompilacji.
function sayHello() { // Ciało funkcji console.log("Cześć!"); } -
Wyrażenia funkcji (Function Expressions): Funkcja jest przypisywana do zmiennej. Nie są podnoszone. Mogą być nazwane lub anonimowe.
const greetUser = function(name) { // Ciało funkcji console.log(`Cześć, ${name}!`); }; -
Funkcje strzałkowe (Arrow Functions): Bardziej zwięzła składnia wprowadzona w ES6. Mają specyficzne zachowania w odniesieniu do
this.const add = (a, b) => a + b; -
Metody obiektów (Object Methods): Funkcje zdefiniowane jako właściwości obiektu.
const user = { name: "Ivan", sayName: function() { console.log(this.name); } }; -
Funkcje generatorowe (Generator Functions): Funkcje, które mogą wstrzymywać i wznawiać wykonywanie za pomocą
yield. Zwracają iterator.function* counter() { let i = 0; while (true) { yield i++; } } -
Funkcje asynchroniczne (Async Functions): Funkcje pracujące z obietnicami i pozwalające na użycie
awaitdo oczekiwania na ich rozwiązanie.async function fetchData() { const response = await fetch("https://api.example.com/data"); const data = await response.json(); return data; } -
Funkcje konstruktorskie (Constructor Functions): Funkcje używane z operatorem
newdo tworzenia obiektów. Tradycyjne podejście do OOP przed pojawieniem się klas.function Person(name, age) { this.name = name; this.age = age; } const person1 = new Person("Petr", 30); -
Funkcje zwrotne (Callback Functions): Funkcje przekazywane jako argument do innej funkcji, wykonywane w określonym momencie.
function processArray(arr, callback) { for (let i = 0; i < arr.length; i++) { callback(arr[i]); } } processArray([1, 2, 3], function(item) { console.log(item * 2); }); -
Natychmiast wywoływane wyrażenia funkcji (IIFE - Immediately Invoked Function Expressions): Funkcje wywoływane zaraz po zdefiniowaniu. Używane do tworzenia lokalnego zakresu.
(function() { // Kod lokalny const secret = "sekret"; console.log(secret); })();
Każdy typ funkcji ma swoje własne cechy składniowe, zakres (this) i scenariusze użycia.