Les declaracions switch
en JavaScript són una manera eficient de gestionar múltiples condicions basades en el valor d'una expressió. Són una alternativa a les declaracions if-else if
quan es treballa amb múltiples opcions que depenen del valor d'una variable.
Sintaxi Bàsica
La sintaxi d'una declaració switch
és la següent:
switch (expressió) { case valor1: // Codi a executar si expressió === valor1 break; case valor2: // Codi a executar si expressió === valor2 break; // Pots afegir tants casos com necessitis default: // Codi a executar si cap dels casos anteriors coincideix }
Explicació de la Sintaxi
expressió
: És l'expressió que s'avalua una vegada i es compara amb els valors de cada cas.case valor
: Siexpressió
coincideix ambvalor
, s'executa el bloc de codi associat.break
: S'utilitza per sortir de la declaracióswitch
una vegada que s'ha executat un cas. Si s'omet, el programa continuarà executant els següents casos fins que trobi unbreak
o arribi al final de la declaracióswitch
.default
: Opcional. S'executa si cap dels casos coincideix amb l'expressió.
Exemple Pràctic
Vegem un exemple pràctic per entendre millor com funcionen les declaracions switch
:
let dia = 3; let nomDia; switch (dia) { case 1: nomDia = "Dilluns"; break; case 2: nomDia = "Dimarts"; break; case 3: nomDia = "Dimecres"; break; case 4: nomDia = "Dijous"; break; case 5: nomDia = "Divendres"; break; case 6: nomDia = "Dissabte"; break; case 7: nomDia = "Diumenge"; break; default: nomDia = "Dia no vàlid"; } console.log(nomDia); // Sortida: Dimecres
Explicació de l'Exemple
- Inicialització de la Variable: La variable
dia
s'inicialitza amb el valor3
. - Declaració
switch
: La declaracióswitch
avalua el valor dedia
. - Casos: Es compara
dia
amb cada cas. Quandia
és igual a3
, s'executa el bloc de codi associat (nomDia = "Dimecres";
) i es trenca la declaracióswitch
ambbreak
. - Sortida: El valor de
nomDia
és "Dimecres", que es mostra a la consola.
Exercicis Pràctics
Exercici 1
Escriu una funció getSeason
que prengui un número de mes (1-12) i retorni la temporada corresponent ("Hivern", "Primavera", "Estiu", "Tardor").
function getSeason(mes) { let temporada; switch (mes) { case 12: case 1: case 2: temporada = "Hivern"; break; case 3: case 4: case 5: temporada = "Primavera"; break; case 6: case 7: case 8: temporada = "Estiu"; break; case 9: case 10: case 11: temporada = "Tardor"; break; default: temporada = "Mes no vàlid"; } return temporada; } // Prova la funció console.log(getSeason(3)); // Sortida: Primavera console.log(getSeason(7)); // Sortida: Estiu console.log(getSeason(11)); // Sortida: Tardor console.log(getSeason(13)); // Sortida: Mes no vàlid
Exercici 2
Crea una funció getGrade
que prengui una lletra de qualificació ('A'
, 'B'
, 'C'
, 'D'
, 'F'
) i retorni un missatge corresponent a la qualificació.
function getGrade(qualificacio) { let missatge; switch (qualificacio) { case 'A': missatge = "Excel·lent!"; break; case 'B': missatge = "Molt bé!"; break; case 'C': missatge = "Bé!"; break; case 'D': missatge = "Necessita millorar."; break; case 'F': missatge = "Suspès."; break; default: missatge = "Qualificació no vàlida."; } return missatge; } // Prova la funció console.log(getGrade('A')); // Sortida: Excel·lent! console.log(getGrade('C')); // Sortida: Bé! console.log(getGrade('E')); // Sortida: Qualificació no vàlida.
Errors Comuns
- Oblidar el
break
: Si oblides elbreak
, el codi continuarà executant els següents casos fins que trobi unbreak
o arribi al final de la declaracióswitch
. - No incloure un cas
default
: Tot i que és opcional, és una bona pràctica incloure un casdefault
per gestionar valors inesperats. - Comparació estricta: La comparació en una declaració
switch
és estricta (===
), així que assegura't que els tipus de dades coincideixin.
Resum
Les declaracions switch
són una eina poderosa per gestionar múltiples condicions basades en el valor d'una expressió. Són especialment útils quan tens moltes opcions que depenen del valor d'una variable. Recorda utilitzar break
per evitar l'execució de casos no desitjats i incloure un cas default
per gestionar valors inesperats.
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