Valors de retorn en funcions Javascript

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.

Nota: en la pràctica res ens impedeix que una funció retorni més d’un valor, però com només podem tornar una cosa, hauríem de ficar tots els valors que volem tornar a una estructura de dades, com ara una matriu. No obstant això, això seria un ús més o menys avançat que no anem a veure en aquests moments.

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ó.

Nota: Fins i tot, si ho pensem, ens podrem donar compte que els paràmetres són com a variables que es declaren a la capçalera de la funció i que s’inicialitzen a el cridar a la funció. Els paràmetres també són locals a la funció i tindran validesa només quan aquesta s’està executant.

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 ” .

Nota : Podem trobar més informació sobre àmbit de variables en un article anterior.

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.

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *