Sobes.tech
Intern

Aké funkcie existujú v JavaScript?

sobes.tech AI

Odpoveď od AI

V JavaScripte existujú tieto druhy funkcií:

  • Deklarácie funkcií (Function Declarations): Základný syntax na definovanie funkcie. Sú hoistované pri kompilácii.

    function sayHello() {
      // Telo funkcie
      console.log("Ahoj!");
    }
    
  • Výrazy funkcií (Function Expressions): Funkcia je priradená premennej. Nie sú hoistované. Môžu byť pomenované alebo anonymné.

    const greetUser = function(name) {
      // Telo funkcie
      console.log(`Ahoj, ${name}!`);
    };
    
  • Šípové funkcie (Arrow Functions): Kompaktnejší syntax zavedený v ES6. Majú špecifické správanie this.

    const add = (a, b) => a + b;
    
  • Metódy objektov (Object Methods): Funkcie definované ako vlastnosti objektu.

    const user = {
      name: "Ivan",
      sayName: function() {
        console.log(this.name);
      }
    };
    
  • Generatorové funkcie (Generator Functions): Funkcie, ktoré môžu pozastaviť a pokračovať vo vykonávaní pomocou yield. Vracia iterátor.

    function* counter() {
      let i = 0;
      while (true) {
        yield i++;
      }
    }
    
  • Asynchrónne funkcie (Async Functions): Funkcie pracujúce s promisami a umožňujúce použitie await na čakanie na dokončenie promisov.

    async function fetchData() {
      const response = await fetch("https://api.example.com/data");
      const data = await response.json();
      return data;
    }
    
  • Konštruktorové funkcie (Constructor Functions): Funkcie používané s operátorom new na vytváranie objektov. Tradičný prístup pred príchodom tried.

    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    const person1 = new Person("Petr", 30);
    
  • Funkcie spätného volania (Callback Functions): Funkcie, ktoré sa odovzdávajú ako argumenty iným funkciám na vykonanie v určitom momente.

    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žite volané funkcie (Immediately Invoked Function Expressions): Funkcie, ktoré sa vykonávajú ihneď po definovaní. Používajú sa na vytvorenie lokálneho rozsahu.

    (function() {
      // Lokálny kód
      const secret = "tajomstvo";
      console.log(secret);
    })();
    

Každý typ funkcie má svoje vlastnosti v syntaxe, rozsahu (this) a scenároch použitia.