Variables
Fins ara, cada valor que mostràvem amb console.log() era escrit directament al codi. Ara aprendrem a guardar valors perquè els puguem reutilitzar. El lloc on guardem un valor s'anomena variable.
Què és una variable
Una variable és com una capsa amb un nom. Hi poses un valor a dins, i després pots fer servir el nom per recuperar-lo. Per crear una variable en JavaScript, escrius la paraula let, el nom, el signe = i el valor:
El signe = en programació no vol dir «és igual a», sinó que vol dir «guarda aquest valor amb aquest nom». Primer es calcula el que hi ha a la dreta del =, i després es guarda amb el nom de l'esquerra.
La paraula let diu a JavaScript «vull crear una variable nova». Només cal posar-la el primer cop que utilitzes la variable.
Noms de variables
Pots triar el nom que vulguis per a una variable, però hi ha unes regles:
- Només pot contenir lletres, números, guions baixos (
_) i el símbol del dòlar ($). - No pot començar per un número.
- No pot ser una paraula reservada de JavaScript (com
let,if,function). - Les majúscules i minúscules es tenen en compte.
Nominomsón variables diferents.
Per convenció, els noms de variables en JavaScript s'escriuen en camelCase: la primera paraula en minúscula, i les següents amb la primera lletra en majúscula. Per exemple: nomAlumne, edatMaxima, totalPunts. Aquesta convenció és l'estàndard mundial dels programadors de JavaScript.
Fixa't com podem passar variables directament a console.log(), barrejades amb text literal, separant-les per comes.
Tipus de dades
No tots els valors són iguals. JavaScript distingeix entre diversos tipus:
number— qualsevol nombre, amb decimals o sense:42,-7,3.14string— cadena de text:"Hola",'JavaScript',`text`boolean— cert o fals:true,false
A diferència d'altres llenguatges, JavaScript no distingeix entre nombres enters i decimals: tots són number.
Pots preguntar a JavaScript de quin tipus és un valor amb la paraula typeof:
De moment, els tipus que més faràs servir són nombres i cadenes de text: number i string.
Les variables poden canviar
Una variable es diu «variable» precisament perquè el seu valor pot variar. Pots assignar-li un nou valor en qualsevol moment — el valor anterior serà substituït.
Important: per canviar el valor d'una variable que ja existeix, NO tornes a posar let. Només el poses el primer cop, quan la crees.
L'última línia és especialment important: x = x + 5. Primer calcula x + 5 (que és 25 + 5 = 30), i després guarda el resultat a x. No és una equació matemàtica, sinó una assignació «calcula i desa».
const: variables que no canvien
De vegades vols crear una variable que sempre tindrà el mateix valor i mai canviarà. Per exemple, el nombre PI, el nom d'un usuari, l'any actual… En aquests casos, fas servir const enlloc de let:
Si intentes canviar el valor d'una const, JavaScript dona error. Executa aquest exemple i observa què passa:
Surt un TypeError. JavaScript et protegeix contra canvis accidentals.
La regla pràctica és senzilla: fes servir const per defecte, i només canvia-ho per let si saps que necessitaràs modificar la variable més endavant. Així el teu codi és més segur i clar.
Barrejar text i variables: template literals
Passar molts valors a console.log() separats per comes funciona, però queda una mica desmanegat. JavaScript té una eina millor: les template literals, que són strings escrits amb cometes invertides (`). Pots inserir variables directament dins del text amb la sintaxi ${nomVariable}:
Compara els dos mètodes:
// Sense template literal (més confús)
console.log(nom, "té", edat, "anys");
// Amb template literal (més clar)
console.log(`${nom} té ${edat} anys`);
La cometa invertida (`) es troba sovint a la mateixa tecla que el caràcter [ o al costat del 1, depèn del teclat. No confonguis amb la cometa simple (')!
Dins de les claus ${...} pots posar qualsevol expressió, no només noms de variables:
I per arrodonir un decimal a un nombre concret de xifres, els nombres tenen un mètode .toFixed(). Per exemple, .toFixed(2) força que el resultat tingui exactament 2 decimals — ideal per a preus i mesures:
El número s'arrodoneix automàticament si cal. .toFixed(2) sempre dona dos decimals, encara que el número fos enter (5 es converteix en "5.00").
Errors típics amb variables
L'error més freqüent és intentar fer servir una variable que no existeix (perquè t'has equivocat en el nom, o perquè no l'has creada). Executa l'exemple i observa l'error:
El nom missatje (amb jota) i missatge (amb ge) són variables diferents. JavaScript no pot endevinar què volies dir — per això és important escriure els noms amb cura. L'error es diu ReferenceError: «error de referència», perquè estàs intentant referir-te a alguna cosa que no existeix.
Corregeix l'error perquè el programa funcioni.
Exercici
nom amb el valor "Ada", edat amb el valor 16, i llenguatge amb el valor "JavaScript". Després, fes servir una template literal per imprimir exactament aquesta frase:
Em dic Ada, tinc 16 anys i estic aprenent JavaScript
Resum
- Una variable desa un valor:
let x = 42;. - El signe
=vol dir «desa», no «és igual a». letcrea una variable que pot canviar.constcrea una variable que no canvia mai. Fes servirconstper defecte.- JavaScript té tipus:
number,string,boolean. La paraulatypeofet diu el tipus d'un valor. - Les template literals permeten barrejar text i variables amb cometes invertides:
`Hola, ${nom}`. Amb.toFixed(2)pots controlar els decimals. - Les variables creades amb
letes modifiquen sense tornar a posarlet:x = x + 1;.