Uso de parámetros y return en funciones

Qué son los parámetros de una función

Un párametro en una función es un dato que necesita esa función para poder realizar su cometido. Se puede entender que es una especie de variable de la propia función.

La forma de indicar que una función tiene uno o más parámetros es colocándolos dentro de los paréntesis junto al nombre de la función, en el momento de declararla usando la palabra clave function: function muestraMensaje(parametro_mensaje) {...}

El párametro es como un marcardor de datos (una variable) que sirve para indicar a la función que tiene que hacer con ese dato recibido. Por ejemplo sacar el dato recibido en un alert: alert(parametro_mensaje);

Cuando llamamos a una función los datos que pasamos como parámetros reciben el nombre de argumentos de función: muestraMensaje('Hola mundo');

Ejemplo de una función que muestre en un alert el dato recibido como párametro

  1. Es una función muy sencilla donde definimos un parámetro como mensaje a mostrar
  2. Podemos hacer una comprobación del dato recibido para asegurarnos que no es un texto vacío
  3. Mostramos el dato recibido en un alert

    function muestraMensaje(mensaje) {
        if (mensaje != '') {
            alert(mensaje);
        }
    }
                

Asignación al primer botón:


document.getElementById('btn_alert').onclick = function () {
    muestraMensaje('Hola mundo!');
}
                

Ejemplo en el segundo botón:


function muestraInput() {
    const MENSAJE = document.getElementById('in_mensaje').value;
    muestraMensaje(MENSAJE);
}
                

Instrucción return de una función

Esta orden sirve para que la función nos devuelva un dato al final de su proceso. No es obligatorio que una función devuelva un valor, pero si necesitamos ese comportamiento lo haremos usando esta expresión.

Esta expresión debe ser la última orden dentro del código de una función, porque una vez leída el script "sale" de la función y no continúa con lo que pueda haber. Por lo tanto, se puede usar también como instrucción de finalización en una función, cuando no queremos que continue su ejecución. Para eso es suficiente con escribir return false, o return sin más.

Vamos a preparar una función que reciba dos datos númericos y devuelva la suma de los dos datos, si ambos son de tipo numérico.

  1. Definimos la función con 2 parámetros
  2. Comprobamos que ambos datos sean númericos
  3. Calculamos la suma de los dos
  4. Devolvemos el resultado

function suma(a, b) {
    let num1 = parseFloat(a);
    let num2 = parseFloat(b);
    if (isNaN(num1) || isNaN(num2)) {
        return false;
    }
    return num1 + num2;
}
                

Y su uso en los dos botones siguientes


function muestraSuma(dato1, dato2) {
    let sumar = suma(dato1, dato2);
    let mensaje = '';
    if (sumar) {
        mensaje = 'La suma de ' + dato1 + ' + ' + dato2 + ' es ' + sumar;
    } else {
        mensaje = 'Datos no válidos para la suma'
    }
    
    imprimeMensaje(mensaje, 'print_1');
}
                

Pasando parámetros de diferente tipo a una función

Cuando definimos más de un parámetro en una función, el orden en el que se han declarado estos tiene que mantenerse a la hora de llamar a la función y definir sus argumentos. Si una función es definida con 3 parámetros, siendo los dos primeros numéricos y el tercero de tipo lógico, por ejemplo, siempre tendremos que llamarla manteniendo ese orden en sus argumentos.

Vamos a preparar una función que reciba 2 números y devuelva su resta, además incluye un tercer parámetro de tipo lógico que indicará si debemos restar el menor del mayor, o hacer la resta manteniendo el orden de los números (primero menos segundo).

  1. Definimos los 3 parámetros en la función
  2. Hacemos la resta del primer número menos el segundo
  3. Comprobamos si el tercer parámetro es true
  4. En ese caso, si el segundo número es mayor que el primero invertimos el orden de la resta.

function restaNumeros(a, b, positivo) {
    let resta = a - b;
    if (positivo) {
        if (b > a) {
            resta = b - a;
        }
    }
    return resta;
}
                

Otras operaciones de cálculo pasadas a funciones

Vamos a realizar una función para obtener la multiplicación, la división y el módulo de dos números, mostrando sus resultados en un nuevo elemento div, como en los casos anteriores.

La división y el módulo deben tener en cuenta el número mayor para dividirlo por el menor.


function multiplicaNumeros(a, b) {
    return a * b;
}
function divideNumeros(a, b) {
    if (b > a) {
        return b / a;
    }
    return a / b;
}
function moduloNumeros(a, b) {
    if (b > a) {
        return b % a;
    }
    return a % b;
}
function validaNumero(dato) {
    let numero;
    if (dato) {
        numero = parseFloat(dato)
        if (!isNaN(numero)) {
            return numero;
        }
    }
    return false;
}