Какви функции съществуват в JavaScript?
sobes.tech AI
Отговор от AI
В JavaScript съществуват следните видове функции:
-
Декларации на функции (Function Declarations): Основен синтаксис за дефиниране на функция. Те са hoisted при компилация.
function sayHello() { // Тяло на функцията console.log("Здравей!"); } -
Функционални изрази (Function Expressions): Функцията е присвоена на променлива. Не са hoisted. Могат да бъдат именувани или анонимни.
const greetUser = function(name) { // Тяло на функцията console.log(`Здравей, ${name}!`); }; -
Стрелкови функции (Arrow Functions): По-кратък синтаксис, въведен в ES6. Имат особености в поведението на
this.const add = (a, b) => a + b; -
Методи на обекти (Object Methods): Функции, дефинирани като свойства на обект.
const user = { name: "Иван", sayName: function() { console.log(this.name); } }; -
Генераторни функции (Generator Functions): Функции, които могат да спират и възобновяват изпълнението си с
yield. Връщат итератор.function* counter() { let i = 0; while (true) { yield i++; } } -
Асинхронни функции (Async Functions): Функции, работещи с промиси и позволяващи използването на
awaitза изчакване на изпълнение.async function fetchData() { const response = await fetch("https://api.example.com/data"); const data = await response.json(); return data; } -
Конструкторски функции (Constructor Functions): Функции, използвани с
newза създаване на обекти. Традиционен подход преди появата на класове.function Person(name, age) { this.name = name; this.age = age; } const person1 = new Person("Петър", 30); -
Функции за обратно извикване (Callback Functions): Функции, предавани като аргумент за изпълнение в определен момент.
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 - Незабавно извикващи се функционални изрази (Immediately Invoked Function Expressions): Функции, изпълнявани веднага след дефинирането си. Използват се за създаване на локална област.
(function() { // Локален код const secret = "тайна"; console.log(secret); })();
Всеки тип функция има свои особености в синтаксиса, обхвата (this) и сценарии на използване.