En aquest tema, explorarem com funcionen els paràmetres i els valors de retorn en les funcions de JavaScript. Aquest és un concepte fonamental que permet que les funcions siguin més flexibles i reutilitzables.
Continguts
- Introducció als Paràmetres
- Paràmetres per Defecte
- Arguments Object
- Valors de Retorn
- Exemples Pràctics
- Exercicis Pràctics
- Introducció als Paràmetres
Els paràmetres són variables que es passen a una funció quan aquesta és cridada. Permeten que la funció treballi amb dades específiques proporcionades en el moment de la crida.
Exemple:
En aquest exemple, a
i b
són paràmetres de la funció suma
. Quan cridem suma(5, 3)
, els valors 5
i 3
es passen com arguments a la funció.
- Paràmetres per Defecte
JavaScript permet definir valors per defecte per als paràmetres. Això és útil quan volem que un paràmetre tingui un valor predeterminat si no es proporciona cap argument en la crida de la funció.
Exemple:
function saluda(nom = 'Convidat') { return `Hola, ${nom}!`; } console.log(saluda()); // Hola, Convidat! console.log(saluda('Anna')); // Hola, Anna!
En aquest exemple, si no es proporciona cap argument per al paràmetre nom
, aquest pren el valor per defecte 'Convidat'
.
- Arguments Object
L'objecte arguments
és una característica especial de JavaScript que està disponible dins de totes les funcions. Conté una llista de tots els arguments passats a la funció, independentment de com es defineixin els paràmetres.
Exemple:
function sumaTots() { let total = 0; for (let i = 0; i < arguments.length; i++) { total += arguments[i]; } return total; } console.log(sumaTots(1, 2, 3, 4)); // 10
En aquest exemple, arguments
permet accedir a tots els arguments passats a la funció sumaTots
, independentment del nombre d'arguments.
- Valors de Retorn
Les funcions poden retornar un valor utilitzant la paraula clau return
. Quan una funció troba una instrucció return
, aquesta finalitza immediatament i retorna el valor especificat.
Exemple:
En aquest exemple, la funció multiplica
retorna el producte de a
i b
.
- Exemples Pràctics
Exemple 1: Funció amb Paràmetres i Valor de Retorn
function resta(a, b) { return a - b; } let resultat = resta(10, 4); // resultat és 6 console.log(resultat);
Exemple 2: Funció amb Paràmetres per Defecte
function creaUsuari(nom = 'Anònim', edat = 0) { return { nom: nom, edat: edat }; } let usuari1 = creaUsuari(); let usuari2 = creaUsuari('Joan', 25); console.log(usuari1); // { nom: 'Anònim', edat: 0 } console.log(usuari2); // { nom: 'Joan', edat: 25 }
Exemple 3: Utilitzant l'Objecte Arguments
function concatenaStrings() { let resultat = ''; for (let i = 0; i < arguments.length; i++) { resultat += arguments[i] + ' '; } return resultat.trim(); } console.log(concatenaStrings('Hola', 'món', '!')); // 'Hola món !'
- Exercicis Pràctics
Exercici 1: Funció amb Paràmetres i Valor de Retorn
Escriu una funció divideix
que prengui dos paràmetres a
i b
i retorni el resultat de dividir a
per b
. Assegura't que b
no sigui zero.
function divideix(a, b) { if (b === 0) { return 'Error: No es pot dividir per zero'; } return a / b; } // Prova la funció console.log(divideix(10, 2)); // 5 console.log(divideix(10, 0)); // Error: No es pot dividir per zero
Exercici 2: Funció amb Paràmetres per Defecte
Escriu una funció creaSalutacio
que prengui dos paràmetres nom
i missatge
, on missatge
tingui un valor per defecte de 'Benvingut'
. La funció ha de retornar una cadena de text amb el format missatge, nom!
.
function creaSalutacio(nom, missatge = 'Benvingut') { return `${missatge}, ${nom}!`; } // Prova la funció console.log(creaSalutacio('Maria')); // Benvingut, Maria! console.log(creaSalutacio('Pere', 'Hola')); // Hola, Pere!
Exercici 3: Utilitzant l'Objecte Arguments
Escriu una funció sumaArguments
que sumi tots els arguments passats a la funció utilitzant l'objecte arguments
.
function sumaArguments() { let total = 0; for (let i = 0; i < arguments.length; i++) { total += arguments[i]; } return total; } // Prova la funció console.log(sumaArguments(1, 2, 3, 4)); // 10 console.log(sumaArguments(5, 10, 15)); // 30
Conclusió
En aquesta secció, hem après com utilitzar paràmetres i valors de retorn en les funcions de JavaScript. Hem vist com definir paràmetres per defecte, utilitzar l'objecte arguments
i retornar valors des de les funcions. Aquests conceptes són fonamentals per escriure codi modular i reutilitzable. A la següent secció, explorarem l'àmbit i els tancaments en JavaScript.
JavaScript: De Principiant a Avançat
Mòdul 1: Introducció a JavaScript
- Què és JavaScript?
- Configuració del Teu Entorn de Desenvolupament
- El Teu Primer Programa en JavaScript
- Sintaxi i Conceptes Bàsics de JavaScript
- Variables i Tipus de Dades
- Operadors Bàsics
Mòdul 2: Estructures de Control
- Declaracions Condicionals
- Bucles: for, while, do-while
- Declaracions Switch
- Gestió d'Errors amb try-catch
Mòdul 3: Funcions
- Definició i Crida de Funcions
- Expressions de Funció i Funcions Fletxa
- Paràmetres i Valors de Retorn
- Àmbit i Tancaments
- Funcions d'Ordre Superior
Mòdul 4: Objectes i Arrays
- Introducció als Objectes
- Mètodes d'Objecte i Paraula Clau 'this'
- Arrays: Conceptes Bàsics i Mètodes
- Iteració sobre Arrays
- Desestructuració d'Arrays
Mòdul 5: Objectes i Funcions Avançades
- Prototips i Herència
- Classes i Programació Orientada a Objectes
- Mòduls i Importació/Exportació
- JavaScript Asíncron: Callbacks
- Promeses i Async/Await
Mòdul 6: El Model d'Objectes del Document (DOM)
- Introducció al DOM
- Selecció i Manipulació d'Elements del DOM
- Gestió d'Esdeveniments
- Creació i Eliminació d'Elements del DOM
- Gestió i Validació de Formularis
Mòdul 7: APIs del Navegador i Temes Avançats
- Emmagatzematge Local i de Sessió
- Fetch API i AJAX
- WebSockets
- Service Workers i Aplicacions Web Progressives (PWAs)
- Introducció a WebAssembly
Mòdul 8: Proves i Depuració
- Depuració de JavaScript
- Proves Unitàries amb Jest
- Proves d'Integració
- Proves de Cap a Cap amb Cypress
Mòdul 9: Rendiment i Optimització
- Optimització del Rendiment de JavaScript
- Gestió de Memòria
- Manipulació Eficient del DOM
- Càrrega Per Mandat i Divisió de Codi
Mòdul 10: Frameworks i Llibreries de JavaScript
- Introducció a React
- Gestió d'Estat amb Redux
- Conceptes Bàsics de Vue.js
- Conceptes Bàsics d'Angular
- Triar el Framework Adequat