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
thiselgesyje.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
newoperatoriumi 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.