Parámetros de las funciones

  • Por
  • 02 de noviembre de 2001
  • Valoración:
  • 8 Comentarios
  • Manuales de Javascript
Vemos lo que son los parámetros en las funciones. Vemos como definir funciones que reciben parámetros en el lenguaje Javascript y como hacer llamadas a funciones pasando parámetros.
En el Manual de Javascript hemos hablado anteriormente sobre funciones. En concreto este es el tercer artículo que abordamos sobre el tema.

Las ideas que hemos explicado anteriormente sobre funciones no son las únicas que debemos aprender para manejarlas en toda su potencia. Las funciones también tienen una entrada y una salida de datos. En este artículo veremos cómo podemos enviar datos a las funciones Javascript.

Parámetros

Los parámetros se usan para mandar valores a las funciones. Una función trabajará con los parámetros para realizar las acciones. Por decirlo de otra manera, los parámetros son los valores de entrada que recibe una función.

Por poner un ejemplo sencillo de entender, una función que realizase una suma de dos números tendría como parámetros a esos dos números. Los dos números son la entrada, así como la salida sería el resultado de la suma, pero eso lo veremos más tarde.

Veamos un ejemplo anterior en el que creábamos una función para mostrar un mensaje de bienvenida en la página web, pero al que ahora le vamos a pasar un parámetro que contendrá el nombre de la persona a la que hay que saludar.

function escribirBienvenida(nombre){
    document.write("<H1>Hola " + nombre + "</H1>")
}


Como podemos ver en el ejemplo, para definir en la función un parámetro tenemos que poner el nombre de la variable que va a almacenar el dato que le pasemos. Esa variable, que en este caso se llama nombre, tendrá como valor el dato que le pasemos a la función cuando la llamemos. Además, la variable donde recibimos el parámetro tendrá vida durante la ejecución de la función y dejará de existir cuando la función termine su ejecución.

Para llamar a una función que tiene parámetros se coloca entre paréntesis el valor del parámetro. Para llamar a la función del ejemplo habría que escribir:

escribirBienvenida("Alberto García")

Al llamar a la función así, el parámetro nombre toma como valor "Alberto García" y al escribir el saludo por pantalla escribirá "Hola Alberto García" entre etiquetas <H1>.

Los parámetros pueden recibir cualquier tipo de datos, numérico, textual, boleano o un objeto. Realmente no especificamos el tipo del parámetro, por eso debemos tener un cuidado especial al definir las acciones que realizamos dentro de la función y al pasarle valores, para asegurarnos que todo es consecuente con los tipos de datos que esperamos tengan nuestras variables o parámetros.

Múltiples parámetros

Una función puede recibir tantos parámetros como queramos y para expresarlo se colocan los nombres de los parámetros separados por comas, dentro de los paréntesis. Veamos rápidamente la sintaxis para que la función de antes, pero hecha para que reciba dos parámetros, el primero el nombre al que saludar y el segundo el color del texto.

function escribirBienvenida(nombre,colorTexto){
    document.write("<FONT color='" + colorTexto + "'>")
    document.write("<H1>Hola " + nombre + "</H1>")
    document.write("</FONT>")
}


Llamaríamos a la función con esta sintaxis. Entre los paréntesis colocaremos los valores de los parámetros.

var miNombre = "Pepe"
var miColor = "red"
escribirBienvenida(miNombre,miColor)


He colocado entre los paréntesis dos variables en lugar de dos textos entrecomillados. Cuando colocamos variables entre los parámetros en realidad lo que estamos pasando a la función son los valores que contienen las variables y no las mismas variables.

Los parámetros se pasan por valor

Al hilo del uso de parámetros en nuestros programas Javascript, tenemos que saber que los parámetros de las funciones se pasan por valor. Esto quiere decir que estamos pasando valores y no variables. En la práctica, aunque modifiquemos un parámetro en una función, la variable original que habíamos pasado no cambiará su valor. Se puede ver fácilmente con un ejemplo.

function pasoPorValor(miParametro){
    miParametro = 32
    document.write("he cambiado el valor a 32")
}
var miVariable = 5
pasoPorValor(miVariable)
document.write ("el valor de la variable es: " + miVariable)


En el ejemplo tenemos una función que recibe un parámetro y que modifica el valor del parámetro asignándole el valor 32. También tenemos una variable, que inicializamos a 5 y posteriormente llamamos a la función pasándole esta variable como parámetro. Como dentro de la función modificamos el valor del parámetro podría pasar que la variable original cambiase de valor, pero como los parámetros no modifican el valor original de las variables, ésta no cambia de valor.

De este modo, una vez ejecutada la función, al imprimir en pantalla el valor de miVariable se imprimirá el número 5, que es el valor original de la variable, en lugar de 32 que era el valor con el que habíamos actualizado el parámetro.

En Javascript sólo se pueden pasar las variables por valor.

Ahora que hemos aprendido a enviar datos a las funciones, por medio de los parámetros, podemos aprender a hacer funciones que devuelven valores.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Comentarios

José Guadalupe Figueroa Rodríg

12/12/2007
Señores:

El articulo me parece bueno porque se acerca a lo que se denomina artículo funcional. Ya ven que tambien existen los articulos inteligentes...
Al buen entendedor pocas palabras pero escogidas... Espero que sigan por ese camino... Saludos. JGFR

Juan Paulo

05/1/2008
Hola, quiero marcar un detalle de la primer linea de la funcion con multiples parametros:

document.write("<FONT color=" + colorTexto + ">)

al final de la funcion falta una comilla doble cerrando el signo mayor, para que funcione correctamente, la solucion seria:

document.write("<FONT color=" + colorTexto + ">")

Muy bueno el tutorial, Muchas Gracias

Diego Insy

17/8/2011
no encuentro mi error :(
Hola! he intentado practicar con vuestro tutorial, quiero que me diga BIENVENIDO y el nombre que pongo en la ventanita con el prompt. Donde está mi error? Gracias!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Mensaje de bienvenida</title>
<script type="text/javascript">
function bienvenido(var nombre){
document.write("<H1>Hola" + nombre + "</H1">)
}
</script>
</head>

<body>
<script type="text/javascript">
var nombre=prompt ("Escribe tu nombre","nombre");
bienvenido(nombre);
</script>
</body>

</html>

Elias

22/3/2012
Complicated
Primer articulo que me cuesta entender en todo el manual sobre JavaScript! Variable, parámetro, mmm que mezcla, muy complicated.

virtualdesarrollo

23/3/2012
Otra explicacion
A quien le haya costado comprender este artículo, recomiendo este link que esta mejor explicado: http://www.librosweb.es/javascript/capitulo4/funciones.html

José.A

24/4/2012
Pequeño matiz
Sólo aclarar una cosa. Si los parámetros pasados son objetos el parámetro se pasa por referencia y no por valor.
Ejemplo:
<script type="text/javascript">

item = {"propiedad":"viejo"};

function pasar(item2){

alert(item2["propiedad"]); // muestra "viejo"
item2["propiedad"] = "nuevo";

}

pasar(item);
alert("item " + item["propiedad"]); //muestra nuevo aunque se ha cambiado en item2


</script>

makensi

28/12/2012
gracias
Porque se va entendiendo y se tira para delante, no como en otros sitios que una vez que no entiendes hay que volver a repasar mucho desde atrás.
Feliz año nuevo a todos.

Juan

31/1/2014
Necesito ayuda con una función en javascript
Hola a todos, les agradecría mucho si me pudieran ayudar con un ejercicio que estoy realizando.
La verdad recien estoy empezando en esto y no puedo avanzar. ¿Me podrían ayudar?
Esto es lo que dice el ejercicio:
Eres una persona de hábitos. Cada semana compras 5 naranjas. ¡Pero el precio de las naranjas sigue cambiando!
1. Quieres declarar una función que calcule cuánto cuesta comprar 5 naranjas.
2. Luego quieres calcular el costo de comprar las 5 todas juntas.
3. Escribe una función que haga esto, y que se llame costoNaranjas().
4. Debe tomar un parámetro que es el costo de una naranja y multiplicarlo por 5
5. Llama a la función en la que las naranjas cuestan 5 dólares cada una.

Compartir