Sobes.tech
Intern

¿Qué funciones existen en JavaScript?

sobes.tech AI

Respuesta de la IA

En JavaScript, existen los siguientes tipos de funciones:

  • Declaraciones de funciones (Function Declarations): Sintaxis básica para definir una función. Se elevan (hoisted) durante la compilación.

    function sayHello() {
      // Cuerpo de la función
      console.log("¡Hola!");
    }
    
  • Expresiones de funciones (Function Expressions): Una función se asigna a una variable. No se elevan. Pueden ser nombradas o anónimas.

    const greetUser = function(name) {
      // Cuerpo de la función
      console.log(`¡Hola, ${name}!`);
    };
    
  • Funciones flecha (Arrow Functions): Sintaxis más concisa introducida en ES6. Tienen comportamientos específicos con this.

    const add = (a, b) => a + b;
    
  • Métodos de objetos (Object Methods): Funciones definidas como propiedades de un objeto.

    const user = {
      name: "Ivan",
      sayName: function() {
        console.log(this.name);
      }
    };
    
  • Funciones generadoras (Generator Functions): Funciones que pueden pausar y reanudar su ejecución usando yield. Devuelven un iterador.

    function* counter() {
      let i = 0;
      while (true) {
        yield i++;
      }
    }
    
  • Funciones asíncronas (Async Functions): Funciones que trabajan con promesas y permiten usar await para esperar la resolución de promesas.

    async function fetchData() {
      const response = await fetch("https://api.example.com/data");
      const data = await response.json();
      return data;
    }
    
  • Funciones constructoras (Constructor Functions): Funciones usadas con el operador new para crear objetos. Enfoque tradicional de OOP antes de las clases.

    function Person(name, age) {
      this.name = name;
      this.age = age;
    }
    
    const person1 = new Person("Petr", 30);
    
  • Funciones callback (Callback Functions): Funciones pasadas como argumentos a otra función para ejecutarse en un momento determinado.

    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);
    });
    
  • Expresiones de funciones inmediatamente invocadas (IIFE - Immediately Invoked Function Expressions): Funciones que se ejecutan justo después de definirse. Se usan para crear ámbitos locales.

    (function() {
      // Código local
      const secret = "secreto";
      console.log(secret);
    })();
    

Cada tipo de función tiene sus propias características de sintaxis, ámbito (this) y escenarios de uso.