Sobes.tech
Intern

Koje funkcije postoje u JavaScriptu?

sobes.tech АИ

Одговор од АИ

У JavaScript-u postoje sledeće vrste funkcija:

  • Deklaracije funkcija (Function Declarations): Osnovni sintaks za definisanje funkcije. Hoistovane su pri kompilaciji.

    function sayHello() {
      // Telo funkcije
      console.log("Zdravo!");
    }
    
  • Funkcionalni izrazi (Function Expressions): Funkcija je dodeljena promenljivoj. Nisu hoistovane. Mogu biti imenovane ili anonimne.

    const greetUser = function(name) {
      // Telo funkcije
      console.log(`Zdravo, ${name}!`);
    };
    
  • Strelaste funkcije (Arrow Functions): Kraći sintaks, predstavljen u ES6. Imaju specifične osobine u ponašanju this.

    const add = (a, b) => a + b;
    
  • Metode objekata (Object Methods): Funkcije definisane kao svojstva objekta.

    const user = {
      name: "Ivan",
      sayName: function() {
        console.log(this.name);
      }
    };
    
  • Generator funkcije (Generator Functions): Funkcije koje mogu zaustaviti i nastaviti izvršavanje pomoću yield. Vraćaju iterator.

    function* counter() {
      let i = 0;
      while (true) {
        yield i++;
      }
    }
    
  • Asinhrone funkcije (Async Functions): Funkcije koje rade sa promisima i omogućavaju korišćenje await za čekanje na izvršenje.

    async function fetchData() {
      const response = await fetch("https://api.example.com/data");
      const data = await response.json();
      return data;
    }
    
  • Konstruktorske funkcije (Constructor Functions): Funkcije koje se koriste sa new za kreiranje objekata. Tradicionalni pristup pre pojave klasa.

    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    const person1 = new Person("Petr", 30);
    
  • Funkcije poziva nazad (Callback Functions): Funkcije koje se prosleđuju kao argumenti drugim funkcijama za izvršenje u određenom trenutku.

    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 - Odmah pozvane funkcije (Immediately Invoked Function Expressions): Funkcije koje se izvršavaju odmah nakon definisanja. Koriste se za kreiranje lokalnog opsega.

    (function() {
      // Lokalni kod
      const secret = "tajna";
      console.log(secret);
    })();
    

Svaki tip funkcije ima svoje osobine u sintaksi, opsegu (this) i scenarijima korišćenja.