Datatyper
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
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:
Tekst
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
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
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)
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:
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();