Sobes.tech
Intern

Kādas funkcijas ir JavaScript?

sobes.tech AI

Atbilde no AI

JavaScript ir pastāv šādi funkciju veidi:

  • Funkciju deklarācijas (Function Declarations): Pamatsintakse funkcijas definēšanai. Tās ir hoisted kompilācijas laikā.

    function sayHello() {
      // Funkcijas ķermenis
      console.log("Sveiki!");
    }
    
  • Funkciju izteiksmes (Function Expressions): Funkcija ir piešķirta mainīgajam. Tās nav hoisted. Var būt ar nosaukumu vai bez.

    const greetUser = function(name) {
      // Funkcijas ķermenis
      console.log(`Sveiki, ${name}!`);
    };
    
  • Līnijas funkcijas (Arrow Functions): Īsāka sintakse, ieviesta ES6. Ir īpašības this uzvedībā.

    const add = (a, b) => a + b;
    
  • Objektu metodes (Object Methods): Funkcijas, kas definētas kā objekta īpašības.

    const user = {
      name: "Jānis",
      sayName: function() {
        console.log(this.name);
      }
    };
    
  • Generatora funkcijas (Generator Functions): Funkcijas, kas var apstāties un atsākt izpildi ar yield. Atgriež iteratoru.

    function* counter() {
      let i = 0;
      while (true) {
        yield i++;
      }
    }
    
  • Asinhronas funkcijas (Async Functions): Funkcijas, kas strādā ar promisiem un ļauj izmantot await.

    async function fetchData() {
      const response = await fetch("https://api.example.com/data");
      const data = await response.json();
      return data;
    }
    
  • Konstruktora funkcijas (Constructor Functions): Funkcijas, kas tiek izmantotas ar new, lai izveidotu objektus. Tradicionāla pieeja pirms klases ieviešanas.

    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    const person1 = new Person("Pēteris", 30);
    
  • Atgriešanas funkcijas (Callback Functions): Funkcijas, kas tiek nodotas kā argumenti citām funkcijām, lai tās izpildītu noteiktā laikā.

    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 - Nekavēti izpildāmas funkcijas (Immediately Invoked Function Expressions): Funkcijas, kas tiek izpildītas nekavējoties pēc to definēšanas. Tās tiek izmantotas lokālas vides radīšanai.

    (function() {
      // Lokālais kods
      const secret = "noslēpums";
      console.log(secret);
    })();
    

Katrs funkcijas veids ir ar savām īpašībām sintaksē, apgabalā (this) un lietošanas scenārijos.