Lektioner

Variabler och konstanter


OBS OBS! Artikeln är under omarbetning!


En variabel är ju någonting som kan stå för olika, föränderliga värden. Med ett annat sätt att uttrycka sig representerar variabeln variabel data. Begreppet känner du igen från matematiken, där x kan stå för olika siffror beroende på sammanhanget. På samma sätt fungerar det i programmering, med den skillnaden att du förväntas hitta på dina egna namn på variabler.

I äldre Javascript användes generellt nyckelordet var för både variabler och konstanter. Av säkerhets- och tydlighetsskäl används idag tre olika nyckelord: var, const och let

Skillnader mellan var, const och let

var är det ursprungliga sättet att skapa variabler i javascript och fram till 2015 det enda sättet. var skapar en global variabel, som gäller och ändras var som helst i all javascript som används på webbsidan. var kan deklareras, men måste inte deklareras, var kan också deklareras om senare i koden (ofta av misstag).

let skapar en variabel som har block scope. Detta innebär att den bara gäller och kan ändras av koden som ingår i samma kodblock, den kod som ligger inom samma { och }. let måste deklareras, och kan inte deklareras om. I modernt javascript rekommenderas att man använder let för variabler i de flesta fall där man tidigare skulle använt var.

const är en variabel vars data inte ändras. const har, liksom let block scope.


Texten nedanför är skriven innan let och const skapades och är under bearbetning. I väntan på detta kan du använda dig av kapitlet om variabler på W3Schools (på engelska)


Tilldelning (assignment)

För att göra en variabel du kan använda behöver du tilldela variabeln data, på engelska kallas denna tilldelning assignment. I exemplet nedan kommer jag ge variabeln humoer värdet "grinig" och variabeln aalder värdet 42. Tänk på att du inte kan använda ÅÄÖ i variabelnamnen.

Skrivet som korrekt JavaScript kommer det se ut så här:

 humoer = "grinig";   aalder = 42;`

När variabeln har tilldelats data, säger man att den innehåller denna data.

När variablerna nu innehåller dessa data kan du använda dessa, till exempel som popupfönster på samma sätt som du gjorde tidigare (klicka på texten för att se hur det ser ut):

alert(humoer);   alert(aalder);

(För att få texten ovan att köra funktionen alert() vid klick har jag använt mig av HTML-taggen <span> med händelseattributet onclick, alltså: <span onclick="alert(humoer)">alert(humoer);</span>)

Deklarera variabler

Vissa programmeringsspråk kräver att du talar om namnen på dina variabler separat för att de ska fungera, detta kallas att deklarera variablerna. JavaScript är inte så noga med detta, även om jag inte talar om att en variabel är en variabel såp kommer webbläsaren anta det, vilket innebär att det som står ovan faktiskt kommer fungera. Det anses ändå som god praxis att deklarera sina variabler även i JavaScript. För att deklarera variablerna ovan kan man i sitt skript skriva:

var humoer;   var aalder;`

Detta kan du också sammanfatta med hjälp av kommatecken för att slippa skriva så mycket. Då ser det ut så här:

var humoer, aalder;`

Har du fler variabler att deklarera fyller du bara på med fler komman och variabelnamn.

För att ytterligare spara in på skrivandet kan du passa på tilldela variablerna sina värden samtidigt som du deklarerar dem:

var humoer = "grinig";   var aalder = 42;`

eller rent av:

var humoer = "grinig", aalder = 42;`

Detta innebär alltså exakt samma sak som om du skulle ha skrivit:

var humoer;   var aalder;   humoer = "grinig";   aalder = 42;`

men med mycket mindre att skriva.

Namn på variabler

JavaScript skiljer på stora och små bokstäver, det innebär att humoer är ett annat namn är Humoer, HUMOER eller HuMoEr. Du kan inte använda namn med mellanslag eller andra tecken än de som finns i det engelska alfabetet plus siffror. Punkttecken, komman och liknande får inte förekomma i namnen, däremot kan du använda understreck (_) och dollartecken ($).

Fortsätt läsa om Datatyper i JavaScript