Jaké funkce existují v JavaScriptu?
sobes.tech AI
Odpověď od AI
V JavaScriptu existují následující typy funkcí:
-
Deklarace funkcí (Function Declarations): Základní syntaxe pro definici funkce. Jsou hoistovány při kompilaci.
function sayHello() { // Tělo funkce console.log("Ahoj!"); } -
Výrazy funkcí (Function Expressions): Funkce je přiřazena proměnné. Nejsou hoistovány. Mohou být pojmenované nebo anonymní.
const greetUser = function(name) { // Tělo funkce console.log(`Ahoj, ${name}!`); }; -
Šipkové funkce (Arrow Functions): Kompaktnější syntaxe představená v ES6. Mají specifické chování
this.const add = (a, b) => a + b; -
Metody objektů (Object Methods): Funkce definované jako vlastnosti objektu.
const user = { name: "Ivan", sayName: function() { console.log(this.name); } }; -
Generátorové funkce (Generator Functions): Funkce, které mohou pozastavit a znovu spustit své provádění pomocí
yield. Vrací iterátor.function* counter() { let i = 0; while (true) { yield i++; } } -
Asynchronní funkce (Async Functions): Funkce pracující s promisy a umožňující použití klíčového slova
awaitpro čekání na dokončení promisů.async function fetchData() { const response = await fetch("https://api.example.com/data"); const data = await response.json(); return data; } -
Funkce konstruktorů (Constructor Functions): Funkce používané s operátorem
newpro tvorbu objektů. Tradiční přístup k OOP před příchodem tříd.function Person(name, age) { this.name = name; this.age = age; } const person1 = new Person("Petr", 30); -
Funkce zpětného volání (Callback Functions): Funkce předávané jako argument jiné funkce pro provedení v určitou chvíli.
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 - Okamžitě volané funkční výrazy (Immediately Invoked Function Expressions): Funkce, které jsou vykonány ihned po definici. Používají se k vytvoření lokálního rozsahu.
(function() { // Lokální kód const secret = "tajemství"; console.log(secret); })();
Každý typ funkce má své specifické syntaxe, rozsah (this) a scénáře použití.