Sobes.tech
Intern

Millised funktsioonid on JavaScriptis?

sobes.tech AI

Vastus AI-lt

JavaScriptis on järgmised funktsiooni tüübid:

  • Funktsiooni deklaratsioonid (Function Declarations): Põhjsüntaks funktsiooni määratlemiseks. Need on hoisted kompileerimise ajal.

    function sayHello() {
      // Funktsiooni keha
      console.log("Tere!");
    }
    
  • Funktsiooni väljendid (Function Expressions): Funktsioon on määratud muutujale. Need ei ole hoisted. Võivad olla nimetatud või nimeta.

    const greetUser = function(name) {
      // Funktsiooni keha
      console.log(`Tere, ${name}!`);
    };
    
  • Noolefunktsioonid (Arrow Functions): Lühike süntaks, tutvustatud ES6-s. Omavad this käitumises erilisi omadusi.

    const add = (a, b) => a + b;
    
  • Objekti meetodid (Object Methods): Funktsioonid, mis on määratletud objekti omadustena.

    const user = {
      name: "Ivan",
      sayName: function() {
        console.log(this.name);
      }
    };
    
  • Generator-funktsioonid (Generator Functions): Funktsioonid, mis võivad peatuda ja jätkata yield abil. Tagastavad iteratori.

    function* counter() {
      let i = 0;
      while (true) {
        yield i++;
      }
    }
    
  • Asünkroonfunktsioonid (Async Functions): Funktsioonid, mis töötavad promisidega ja võimaldavad kasutada await.

    async function fetchData() {
      const response = await fetch("https://api.example.com/data");
      const data = await response.json();
      return data;
    }
    
  • Konstruktorifunktsioonid (Constructor Functions): Funktsioonid, mida kasutatakse new operaatoriga objektide loomiseks. Traditsiooniline lähenemine enne klasside kasutuselevõttu.

    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    const person1 = new Person("Petr", 30);
    
  • Tagasikutsumisfunktsioonid (Callback Functions): Funktsioonid, mis edastatakse teise funktsiooni argumendina ja täidetakse kindlal hetkel.

    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 - Koheselt kutsutavad funktsioonid (Immediately Invoked Function Expressions): Funktsioonid, mis täidetakse kohe pärast nende defineerimist. Kasutatakse lokaalse keskkonna loomiseks.

    (function() {
      // Kohalik kood
      const secret = "saladus";
      console.log(secret);
    })();
    

Iga funktsiooni tüüp omab oma sünaksis, ulatuses (this) ja kasutusstsenaariumides omadusi.