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
Es una función muy sencilla donde definimos un parámetro como mensaje a mostrar
Podemos hacer una comprobación del dato recibido para asegurarnos que no es un texto vacío
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.
Definimos la función con 2 parámetros
Comprobamos que ambos datos sean númericos
Calculamos la suma de los dos
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).
Definimos los 3 parámetros en la función
Hacemos la resta del primer número menos el segundo
Comprobamos si el tercer parámetro es true
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;
}