El retorno de una función es el valor que la función envía como resultado después de ejecutarse.
En JavaScript, se utiliza la palabra clave return
para especificar el valor que se desea devolver.
Cuando una función alcanza una instrucción return
, la ejecución de la función se detiene y el valor especificado se “devuelve” al lugar donde la función fue llamada.
La sintaxis básica para retornar un valor de una función es la siguiente:
function nombreFuncion() {
return valor;
}
Veámoslo con un ejemplo sencillo
function sumar(a, b) {
return a + b; // Devuelve la suma de a y b
}
// Almacena el valor devuelto (7) en la variable resultado
let resultado = sumar(3, 4);
En este caso,
- La función
sumar
calcula el valor dea + b
. return
devuelve el resultado de la operación al lugar donde se llamó la función.- El valor devuelto (7) se almacena en la variable resultado.
Tipos de retornos de función en JavaScript
En JavaScript, los tipos de retorno de función pueden ser de distintos tipos.
Retorno de valor primitivo
Los valores primitivos incluyen tipos de datos como números, cadenas, booleanos, null
, undefined
y símbolos. Una función puede devolver cualquiera de estos tipos como resultado.
function obtenerNombre() {
return "Luis";
}
let nombre = obtenerNombre(); // nombre será "Luis"
Retorno de objetos
JavaScript es un lenguaje orientado a objetos, y por supuesto, una función puede devolver objetos.
function crearPersona(nombre, edad) {
return {
nombre: nombre,
edad: edad
};
}
let persona = crearPersona("María", 25);
console.log(persona.nombre); // Salida: María
Retorno de funciones
JavaScript permite la creación de funciones de orden superior, que son funciones que pueden devolver otras funciones.
function crearSumador(x) {
return function(y) {
return x + y;
};
}
let sumarCinco = crearSumador(5);
console.log(sumarCinco(3)); // Salida: 8
En este ejemplo, crearSumador
devuelve una función que suma el valor x
al argumento y
.
Retorno implícito
En las funciones de flecha (arrow functions) de JavaScript, se puede hacer un retorno implícito.
Es decir, si la función consiste en una sola expresión, podemos omitir la palabra clave return
.
const multiplicar = (a, b) => a * b;
let resultado = multiplicar(4, 5); // resultado será 20
Funciones sin return
Si una función no devuelve explícitamente un valor utilizando return
, o si se llega al final de la función sin un retorno, se devuelve automáticamente undefined
.
function hacerNada() {
// No hay un retorno explícito
}
let resultado = hacerNada(); // resultado será undefined
Ejemplos prácticos
Vamos a ver unos ejemplos prácticos que ilustran cómo utilizar los retornos en situaciones reales (o algo más reales)
Cálculo de precios con impuestos
Imaginemos que estamos desarrollando una función para calcular el precio final de un producto incluyendo impuestos. Aquí, utilizaremos retornos de valor primitivo.
function calcularPrecioConImpuesto(precioBase, tasaImpuesto) {
return precioBase + (precioBase * tasaImpuesto);
}
let precioFinal = calcularPrecioConImpuesto(100, 0.21); // Salida: 121
Manipulación de arrays
Podemos utilizar retornos de objetos para crear funciones que devuelvan información más compleja. En este caso, vamos a contar los elementos de un array.
function contarElementos(array) {
return {
total: array.length,
elementos: array
};
}
let resultado = contarElementos([1, 2, 3, 4]);
console.log(resultado.total); // Salida: 4
Combinación de funciones
La programación funcional se beneficia de la capacidad de devolver funciones desde otras funciones. Aquí creamos una función para aplicar un descuento.
function crearDescuento(tasaDescuento) {
return function(precio) {
return precio - (precio * tasaDescuento);
};
}
let aplicarDescuento20 = crearDescuento(0.20);
console.log(aplicarDescuento20(100)); // Salida: 80