Sobes.tech
Intern

Kokios funkcijos yra JavaScript'e?

sobes.tech AI

Atsakymas iš AI

JavaScript'e egzistuoja šie funkcijų tipai:

  • Funkcijų deklaracijos (Function Declarations): Pagrindinė sintaksė funkcijos apibrėžimui. Jos hoisted yra kompiliacijos metu.

    function sayHello() {
      // Funkcijos turinys
      console.log("Sveiki!");
    }
    
  • Funkcijų išraiškos (Function Expressions): Funkcija priskiriama kintamajam. Jos nėra hoisted. Gali būti pavadintos arba anonimines.

    const greetUser = function(name) {
      // Funkcijos turinys
      console.log(`Sveiki, ${name}!`);
    };
    
  • Rodyklės funkcijos (Arrow Functions): Trumpesnė sintaksė, pristatyta ES6. Yra savybės this elgesyje.

    const add = (a, b) => a + b;
    
  • Objektų metodai (Object Methods): Funkcijos, apibrėžtos kaip objekto savybės.

    const user = {
      name: "Ivan",
      sayName: function() {
        console.log(this.name);
      }
    };
    
  • Generatorinės funkcijos (Generator Functions): Funkcijos, kurios gali sustoti ir tęsti vykdymą su yield. Grąžina iteratorių.

    function* counter() {
      let i = 0;
      while (true) {
        yield i++;
      }
    }
    
  • Asinchroninės funkcijos (Async Functions): Funkcijos, dirbančios su pažadais ir leidžiančios naudoti await.

    async function fetchData() {
      const response = await fetch("https://api.example.com/data");
      const data = await response.json();
      return data;
    }
    
  • Konstruktoriaus funkcijos (Constructor Functions): Funkcijos, naudojamos su new operatoriumi objektų kūrimui. Tradicinis požiūris iki klasių atsiradimo.

    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    const person1 = new Person("Petras", 30);
    
  • Kviečiančios funkcijos (Callback Functions): Funkcijos, perduodamos kaip argumentai kitoms funkcijoms, kad būtų vykdomos tam tikru metu.

    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 - Iš karto iškviečiamos funkcijos (Immediately Invoked Function Expressions): Funkcijos, kurios vykdomos iškart po apibrėžimo. Naudojamos vietinio konteksto sukūrimui.

    (function() {
      // Vietinis kodas
      const secret = "paslaptis";
      console.log(secret);
    })();
    

Kiekvienas funkcijos tipas turi savo ypatybes sintaksėje, apimtyje (this) ir naudojimo scenarijuose.