Sobes.tech
Intern

Ce funcții există în JavaScript?

sobes.tech AI

Răspuns de la AI

În JavaScript, există următoarele tipuri de funcții:

  • Declarații de funcții (Function Declarations): Sintaxă de bază pentru definirea unei funcții. Sunt ridicate (hoisted) în timpul compilării.

    function sayHello() {
      // Corpul funcției
      console.log("Salut!");
    }
    
  • Expresii de funcții (Function Expressions): O funcție este atribuită unei variabile. Nu sunt ridicate. Pot fi numite sau anonime.

    const greetUser = function(name) {
      // Corpul funcției
      console.log(`Salut, ${name}!`);
    };
    
  • Funcții săgeată (Arrow Functions): Sintaxă mai concisă introdusă în ES6. Au comportamente specifice cu this.

    const add = (a, b) => a + b;
    
  • Metode ale obiectelor (Object Methods): Funcții definite ca proprietăți ale unui obiect.

    const user = {
      name: "Ivan",
      sayName: function() {
        console.log(this.name);
      }
    };
    
  • Funcții generator (Generator Functions): Funcții care pot suspenda și relua execuția folosind yield. Returnează un iterator.

    function* counter() {
      let i = 0;
      while (true) {
        yield i++;
      }
    }
    
  • Funcții asincrone (Async Functions): Funcții care lucrează cu promisiuni și permit utilizarea await pentru a aștepta finalizarea promisiunilor.

    async function fetchData() {
      const response = await fetch("https://api.example.com/data");
      const data = await response.json();
      return data;
    }
    
  • Funcții constructor (Constructor Functions): Funcții utilizate cu operatorul new pentru a crea obiecte. Abordare tradițională OOP înainte de apariția claselor.

    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    const person1 = new Person("Petr", 30);
    
  • Funcții callback (Callback Functions): Funcții transmise ca argumente altor funcții pentru a fi executate la un anumit moment.

    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);
    });
    
  • Expresii de funcții invocate imediat (IIFE - Immediately Invoked Function Expressions): Funcții care sunt executate imediat după definire. Folosite pentru crearea unui scop local.

    (function() {
      // Cod local
      const secret = "secreț";
      console.log(secret);
    })();
    

Fiecare tip de funcție are propriile caracteristici de sintaxă, domeniu (this) și scenarii de utilizare.