Hopp til innhold

Fagstoff

Datatyper

Når vi jobber med variabler, er det nyttig å vite hva slags type data som er lagret i en variabel.
Magneter formet som tall og bokstaver, i forskjellige farger. Foto.
Åpne bilde i et nytt vindu

I mange programmeringsspråk er det å angi datatype en del av å deklarere en variabel. I JavaScript blir datatypen satt automatisk når vi tilordner en verdi til en variabel, men det er likevel viktig å forstå datatyper, siden en del feil kan oppstå av at programmet tolker en datatype feil.

Under er de viktigste datatypene i JavaScript.

Tall

Leketall og matematiske tegn i ulike farger som viser regnestykket 4 pluss 4 er lik 8. Foto.

Tall kan være heltall eller desimaltall. Tall skal skrives sammenhengende uten mellomrom, og for desimaltall må du bruke punktum som desimalmarkør (for eksempel 3.14, ikke 3,14). Dette er fordi komma brukes ved opplisting, og det vil derfor tolkes feil.

Operatorer

Tall kan brukes i matematiske operasjoner med operatorene + (pluss), - (minus), * (gange), ** (opphøyd i), / (dele) og % (modulo – rest ved heltallsdivisjon). Her er noen eksempler:

matematiske operasjoner

1let x = 2;
2let y = 3;
3let sum = x + y; // 5
4let differanse = x - y; // -1
5let produkt = x * y; // 6
6let kvotient = x / y; // 0.66666667

Tekst

Scrabble-brikker som ligger på et tastatur. Foto.

En tekst, eller streng (string), kan bestå av bokstaver, tall, tegn og mellomrom. Tekst skal alltid skrives med anførselstegn (" "), apostrofer (' ') eller backticks (` `).

Det er ingen forskjell om vi bruker (doble) anførseltegn eller (enkle) apostrofer rundt teksten, men vi kan kombinere dem om vi trenger å bruke en av dem som en del av teksten, for eksempel

let tekst = 'Favorittsongen til Linda er "All Too Well" av Taylor Swift.';

Her vil anførselstegnene bli en del av teksten, og det som lagres i variabelen tekst, blir da Favorittsongen til Linda er "All Too Well" av Taylor Swift.

Konkatenering

Tegnene doble hermetegn, tre punktum, hermetegn, pluss, tre punktum. Illustrasjon.

En tekst kan settes sammen av flere variabler med plusstegn mellom. Det kalles strengkonkatenering. Her er et eksempel:

let alder = 18;

let tekst = "Linda er " + alder + " år gammel."

Det som blir lagret i variabelen tekst, er da Linda er 18 år gammel. Legg merke til at vi må legge inn mellomrom i teksten mellom anførselstegnene.

Interpolasjon

Tegnene parentes, venstreaksent, dollartegn, krøllparentes, tre punktum, krøllparentes slutt, venstreaksent. Illustrasjon.

En mer elegant måte å sette sammen flere variabler til en tekst på er å bruke noe som kalles strenginterpolasjon, template literals eller backticknotasjon. Da må vi bruke backticks, som på norsk er aksentsymboler (` `). Med backticknotasjon behøver vi ikke å dele opp teksten i flere deler med plusstegn imellom, men i stedet setter vi variabelnavnene inne i krøllparenteser med et dollartegn foran, slik: ${ }. For eksemplet over blir det slik:

let tekst = `Linda er ${alder} år gammel.`

Det som blir lagret i variabelen tekst, er da det samme som i eksempelet over: Linda er 18 år gammel.

Du finner backticktegnet på tastaturet ved å trykke på Shift-tasten sammen med tasten rett til venstre for korrekturtasten (backspace).

Boolsk variabel (boolean)

2-polt bryter til vegg. Foto.

En boolsk variabel er en datatype som bare kan ha en av to verdier: sann (true) eller usann (false). Denne brukes til å angi om en tilstand er aktivert eller ikke, for eksempel om en bryter er av eller på. Boolske variabler brukes som betingelser i valgsetninger (if-setninger) og løkker (loops), for eksempel:

if(bryterErPå){

// ...

}

If-setningen kjører bare hvis variabelen bryterErPå har verdien true.

Logiske utrykk

Logiske uttrykk er en type matematiske uttrykk som bare kan være sanne eller usanne. Slike utrykk produserer derfor boolske verdier. Et eksempel på et logisk uttrykk er x < 3, som gir resultatet false hvis x er større enn eller lik 3, og true hvis x er mindre enn 3.

Logiske operatorer

Det fins en rekke logiske operatorer som kan brukes i logiske uttrykk. Her er noen eksempler:

Logiske uttrykk

1let x = 3;
2let y = 5;
3
4let mindreEnn = x < y; // true
5let størreEnn = x > y; // false
6let mindreEnnEllerLik = x <= y; // true
7let størreEnnEllerLik = x >= y; // false
8let erLik = x == y; // false
9let erLikOgSammeType = x === y; // false
10let erIkkeLik = x != y // true
11let erIkkeLik = !erLik // true

Undefined og null

Undefined og null er to datatyper som angir at en variabel ikke har noen verdi. Undefined angir en variabel som er deklarert, men som ikke har fått noen verdi. Null angir en tom variabel, altså en variabel som har blitt tilordnet null-verdien. Verdien null må ikke forveksles med tallet 0, da tallet 0 har en verdi, mens null angir at det ikke fins noen verdi. I matematikken kalles dette den tomme mengden, eller Ø.

Forskjellen på undefined og null er nyttig å kjenne til, for eksempel ved feilsøking.

Konvertering mellom datatyper

Noen ganger kan en verdi tolkes som en annen datatype enn det som er ment, spesielt hvis verdier hentes inn fra et eksternt dokument, for eksempel en tekstboks i et html-dokument. En typisk feil er at et tall tolkes som tekst, og vi får feil som 5 + 3 = 53. Dette gjøres fordi programmet prøver å sette sammen tallene med strengkonkatenering i stedet for å legge dem sammen. Da må vi konvertere variablene for å si fra hvordan programmet skal tolke verdiene.

Konvertere fra tekst til tall

For å konvertere en tekstvariabel til tall bruker vi funksjonen Number(), slik:

let tekstTall = "3";

let tall = Number(tekstTall);

Number()-funksjonen vil i dette eksempelet returnere tallet 3.

Hvis variabelen vi prøver å konvertere, ikke inneholder et tall, vil Number()-funksjonen returnere teksten NaN, som betyr "not a number".

Konvertere fra tall til tekst

Noen ganger kan det være nyttig å gjøre om en tallverdi til en tekstverdi. Da bruker vi metoden .toString(). Denne hektes på variabelen vi vil konvertere, slik:

let tekstTall = tall.toString();

CC BY-SASkrevet av Karl Arne Dalsaune.
Sist faglig oppdatert 03.06.2022

Læringsressurser

Programmering