Sobes.tech
Intern

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 await do 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 new do 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.