Sobes.tech
Intern

Jaké funkce existují v JavaScriptu?

sobes.tech AI

Odpověď od AI

V JavaScriptu existují následující typy funkcí:

  • Deklarace funkcí (Function Declarations): Základní syntaxe pro definici funkce. Jsou hoistovány při kompilaci.

    function sayHello() {
      // Tělo funkce
      console.log("Ahoj!");
    }
    
  • Výrazy funkcí (Function Expressions): Funkce je přiřazena proměnné. Nejsou hoistovány. Mohou být pojmenované nebo anonymní.

    const greetUser = function(name) {
      // Tělo funkce
      console.log(`Ahoj, ${name}!`);
    };
    
  • Šipkové funkce (Arrow Functions): Kompaktnější syntaxe představená v ES6. Mají specifické chování this.

    const add = (a, b) => a + b;
    
  • Metody objektů (Object Methods): Funkce definované jako vlastnosti objektu.

    const user = {
      name: "Ivan",
      sayName: function() {
        console.log(this.name);
      }
    };
    
  • Generátorové funkce (Generator Functions): Funkce, které mohou pozastavit a znovu spustit své provádění pomocí yield. Vrací iterátor.

    function* counter() {
      let i = 0;
      while (true) {
        yield i++;
      }
    }
    
  • Asynchronní funkce (Async Functions): Funkce pracující s promisy a umožňující použití klíčového slova await pro čekání na dokončení promisů.

    async function fetchData() {
      const response = await fetch("https://api.example.com/data");
      const data = await response.json();
      return data;
    }
    
  • Funkce konstruktorů (Constructor Functions): Funkce používané s operátorem new pro tvorbu objektů. Tradiční přístup k OOP před příchodem tříd.

    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    const person1 = new Person("Petr", 30);
    
  • Funkce zpětného volání (Callback Functions): Funkce předávané jako argument jiné funkce pro provedení v určitou chvíli.

    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);
    });
    
  • IIFE - Okamžitě volané funkční výrazy (Immediately Invoked Function Expressions): Funkce, které jsou vykonány ihned po definici. Používají se k vytvoření lokálního rozsahu.

    (function() {
      // Lokální kód
      const secret = "tajemství";
      console.log(secret);
    })();
    

Každý typ funkce má své specifické syntaxe, rozsah (this) a scénáře použití.