Estem aprenent sobre l’ús de funcions en Javascript i ara mateix potser ja ens hàgim adonat de la gran importància que tenen per a fer programes més o menys avançats. En aquest article de el Manual de Javascript seguirem aprenent coses sobre funcions i en concret que amb elles també es pot retornar valors. A més, veurem algun cas d’ús interessant sobre les funcions que ens pot aclarir una mica l’àmbit de variables locals i globals.
Devolució de valors en les funcions
Les funcions en Javascript també poden retornar valors. De fet, aquesta és una de les utilitats més essencials de les funcions, que hem de conèixer, no només en Javascript sinó en general en qualsevol llenguatge de programació. De manera que, a l’invocar una funció, es podrà realitzar accions i oferir un valor com a sortida.
Per exemple, una funció que calcula el quadrat d’un nombre tindrà com a entrada a aquest nombre i com a sortida tindrà el valor resultant de trobar el quadrat d’aquest nombre. L’entrada de dades en les funcions la vam veure anteriorment en l’article sobre paràmetres de les funcions. Ara hem d’aprendre sobre la sortida.
Vegem un exemple de funció que calcula la mitjana de dos nombres. La funció rebrà els dos números i retornarà el valor de la mitjana.
function media(valor1,valor2){ var resultado resultado = (valor1 + valor2) / 2 return resultado }
Per especificar el valor que retornarà la funció s’utilitza la paraula return seguida de la valor que es desitja retornar. En aquest cas es retorna el contingut de la variable resultat, que conté la mitjana calculada dels dos nombres.
Potser ens preguntem ara com rebre una dada que retorna una funció. Realment en el codi font dels nostres programes podem invocar les funcions en el lloc que desitgem. Quan una funció retorna un valor simplement se substitueix la crida a la funció per aquest valor que retorna. Així doncs, per emmagatzemar un valor de devolució d’una funció, hem d’assignar la crida a aquesta funció com a contingut en una variable, i això ho faríem amb l’operador d’assignació =.
Per a il·lustrar això es pot veure aquest exemple, que cridarà a la funció mitjana () i guardarà el resultat de la mitjana en una variable per després imprimir-la en la pàgina.
var miMedia miMedia = media(12,8) document.write (miMedia)
Múltiples return
en realitat en Javascript les funcions només poden retornar un valor, per la qual cosa en principi no podem fer funcions que retornin dues dades diferents.
Ara bé, encara que només puguem tornar una dada, en una mateixa funció podem col·locar més d’un return. Com diem, només podrem retornar una cosa, però depenent del que hagi succeït en la funció podrà ser d’un tipus o un altre, amb unes dades o altres.
En aquesta funció podem veure un exemple de utilització de múltiples return. Es tracta d’una funció que retorna un 0 si el paràmetre rebut era parell i el valor de l’paràmetre si aquest era imparell.
function multipleReturn(numero){ var resto = numero % 2 if (resto == 0) return 0 else return numero }
Per esbrinar si un nombre és parell trobem la resta de la divisió a l’dividir-lo entre 2. Si la resta és zero és que era parell i retornem un 0, en cas contrari -el nombre és impartir tornem el paràmetre rebut.
Àmbit de les variables en funcions
Dins de les funcions podem declarar variables. Sobre aquest assumpte hem de saber que totes les variables declarades en una funció són locals a aquesta funció, és a dir, només tindran validesa durant l’execució de la funció.
Es podria donar el cas que podem declarar variables en funcions que tinguin el mateix nom que una variable global a la pàgina. Llavors, dins de la funció, la variable que tindrà validesa és la variable local i fora de la funció tindrà validesa la variable global a la pàgina.
En canvi, si no declarem les variables en les funcions s’entén per javascript que estem fent referència a una variable global a la pàgina, de manera que si no està creada la variable la crea, però sempre global a la pàgina en lloc de local a la funció.
Vegem el següent codi.
function variables_glogales_y_locales(){ var variableLocal = 23 variableGlobal = "qwerty"}
En aquest cas variableLocal és una variable que s’ha declarat a la funció, de manera que serà local a la funció i només tindrà validesa durant la seva execució. D’altra banda variableGlobal no s’ha arribat a declarar ( perquè abans d’usar-la no s’ha utilitzat la paraula var per declarar- ) . En aquest cas la variable variableGlobal és global a tota la pàgina i seguirà existint encara que la funció finalitzi la seva execució. A més, si abans de cridar a la funció existís la variable variableGlobal , com a resultat de l’execució d’aquesta funció, es picaria un hipotètic valor d’aquesta variable i se substituiria per ” qwerty ” .
Amb això hem acabat el tema de les funcions , així que d’ara endavant ens dedicarem a altres assumptes també interessants, com són els Arrays en Javascript.