DevPath · Aprende a programar ESPTEN

Funciones

Declaración vs expresión de función

¿Qué es una función?

Imagina que tuvieras que reescribir la misma receta cada vez que quieres cenar. Un horror, ¿verdad? Las funciones son justo lo contrario: tu primer superpoder como programador. Escribe la lógica una vez y úsala mil veces.

Una función es un bloque de código con nombre que agrupa instrucciones para reutilizarlas. Piénsala como una receta de cocina: la escribes una vez y la "cocinas" (la llamas) tantas veces como te apetezca, sin volver a anotar los pasos.

Declaración de función

function saludar(nombre) {
  return "Hola, " + nombre;
}

console.log(saludar("Ana")); // "Hola, Ana"

Una declaración empieza con la palabra function seguida de un nombre. Tiene una propiedad especial: gracias al hoisting puedes llamarla antes de escribirla en el código.

Expresión de función

const saludar = function (nombre) {
  return "Hola, " + nombre;
};

Aquí la función no tiene nombre propio (es anónima) y se guarda en una variable. A diferencia de la declaración, no puedes usarla antes de definirla.

¿Cuál usar?

⚠️ Trampa clásica: confundir definir una función con llamarla. Escribir saludar (sin paréntesis) te da la función entera; saludar("Ana") la ejecuta. Son dos gestos distintos, y olvidar los paréntesis es de los despistes más comunes.

Ejemplos

Declaración llamada antes de definirse (hoisting)

console.log(doble(5)); // 10, ¡funciona aunque esté arriba!

function doble(n) {
  return n * 2;
}

Expresión de función guardada en una variable

const cuadrado = function (n) {
  return n * n;
};
console.log(cuadrado(4)); // 16
Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
Arrow functions →