Cuando un bloque de código se repite en varios lugares, o cuando quieres darle un nombre a una tarea específica, usas funciones. Son la herramienta más importante de cualquier lenguaje de programación.
¿Qué es una función?
Una función es un bloque de código con nombre que puedes ejecutar cuando lo necesites. En lugar de escribir el mismo código varias veces, lo escribes una vez dentro de una función y lo llamas (invocas) cuantas veces quieras.
Sintaxis básica
function nombreDeLaFuncion(parametros) {
// código a ejecutar
return resultado;
}
Para ejecutar la función, la llamas por su nombre seguido de paréntesis:
nombreDeLaFuncion(argumentos);
Ejemplo 1: función simple sin parámetros
function saludar() {
console.log('Hola, bienvenido');
}
saludar(); // Hola, bienvenido
saludar(); // Hola, bienvenido
Defines la función una vez y la usas todas las veces que quieras.
Ejemplo 2: función con parámetros y return
Los parámetros son valores que le pasas a la función para que trabaje con ellos. return devuelve un resultado:
function sumar(a, b) {
return a + b;
}
let resultado = sumar(3, 5);
console.log(resultado); // 8
console.log(sumar(10, 20)); // 30
Ejemplo 3: función con lógica real
function calcularDescuento(precio, porcentaje) {
let descuento = precio * (porcentaje / 100);
let precioFinal = precio - descuento;
return precioFinal;
}
console.log(calcularDescuento(10000, 20)); // 8000
console.log(calcularDescuento(5000, 10)); // 4500
La función encapsula la lógica del descuento. Si mañana cambia cómo se calcula, solo la modificas en un lugar.
Arrow functions: la sintaxis moderna
Las funciones flecha (=>) son una forma más corta de escribir funciones:
const sumar = (a, b) => a + b;
console.log(sumar(4, 6)); // 10
Para funciones de una sola línea, puedes omitir las llaves y el return.
Errores frecuentes
Llamar la función antes de definirla (con arrow functions): Las funciones declaradas con function pueden llamarse antes de su definición (hoisting). Las arrow functions con const no.
Olvidar el return: Si una función debe devolver un valor pero le falta el return, devuelve undefined. Es un error silencioso difícil de detectar.
Confundir definir con llamar: function saludar() {...} define la función. saludar() la ejecuta. Sin los paréntesis, solo estás referenciando la función, no ejecutándola.
Aprende haciendo, no solo leyendo
Leer es el primer paso. El verdadero aprendizaje ocurre cuando practicas con ejercicios reales de JavaScript y recibes corrección inmediata de IA.
Comenzar gratis →