INSTITUTO TECNOLOGICO DE CIUDAD JUAREZ
ALGORITMOS Y PROGRAMACION
ESTRUCTURA DE UNA FUNCION
OSCAR SALDIVAR MEDRANO
17110435
07- MAYO -2020
Una función no es más que un bloque de enunciados que componen un
comportamiento que puede ser invocado las veces que sea necesario. Una
función de JavaScript presenta este aspecto:
function nombre_de_la_función(){
…enunciados a ejecutar…
Para ejecutar la función posteriormente no hay más que invocar su nombre en
cualquier momento y desde cualquier parte de un código, con una excepción: la
función debe haber sido definida anteriormente. Así, por ejemplo, este código:
function dame_una_a(){
alert("¡AAAAAAAAAAAAAAAAA!");
dame_una_a();
ejecutaría la alerta, pero éste:
dame_una_a();
function dame_una_a(){
alert("¡AAAAAAAAAAAAAAAAA!");
generaría un error, porque en el momento en que se invoca la función ésta aún no
ha sido registrada.
Hay que poner especial atención a la hora de crear la funciones, para no repetir
los nombres, principalmente porque esto no genera errores en JavaScript, y puede
suponer quebraderos de cabeza cuando un script no funciona pero la consola de
errores no muestra mensaje alguno.
Podemos desear que una función ejecute unos enunciados en los que opere con
una serie de valores que no hayamos definido dentro de la misma, sino que los
reciba de otra función o enunciado. Esos valores son los argumentos, que se
especifican entre los paréntesis que van tras el nombre de la función, y se separan
por comas:
function nombre_de_la_función(argumento1,argumento1,…){
…enunciados a ejecutar…
Los argumentos se nombran como las variables:
function sumar(x,y){
var total = x + y;
alert(total);
Si después se ejecuta unas líneas como las siguientes:
Por último, sobre los argumentos hay que recordar las respuestas a tres
preguntas:
¿Qué ocurre si se envía a una función menos argumentos que los que se han
especificado?: Los argumentos que no han recibido un valor adoptan el de
undefined.
¿Qué ocurre si se envía a una función más argumentos que los que se han
especificado?: Los argumentos que sobran son elgantemente ignorados.
¿Cuántos argumentos se pueden especificar como máximo?: 255.
El ámbito sería algo así como el espacio en el que las variables existen y al que
pueden acceder enunciados u otras funciones. Si se define una variable dentro de
una función, esa variable sólo existe para esa función, y otras funciones no
pueden acceder a su valor a menos que lo reciban como un argumento:
function concatenar_cadenas(){
var a = "orda";
var b = "lía";
var c = a + b;
}
function mostrar_resultado(){
alert(c);
}
concatenar_cadenas();
mostrar_resultado();
En este caso no obtenemos una alerta con «ordalía», sino un error, puesto que en
la función mostrar_resultado() pedimos que se muestre el valor de una variable
que no existe en su ámbito. Dicho de otra manera, las variables existen sólo para
concatenar_cadenas(), y aunque adquieren los valores definidos en cuanto
ejecutamos la función, ésta es una «barrera» que impide que se pueda acceder a
aquellos desde fuera.
Para que el código funionase, deberíamos definir las variables fuera de ambas
funciones, para que su ámbito sea global:
var a = "";
var b = "";
var c = "";
function concatenar_cadenas(){
a = "orda";
b = "lía";
c = a + b;
}
function mostrar_resultado(){
alert(c);
}
concatenar_cadenas();
mostrar_resultado();
De esta forma, toda función puede acceder a las variables. concatenar_cadenas()
modifica los valores iniciales, pero ahora estos se almacenan de manera global
fuera de ella; así están disponibles para mostrar_resultado().