JavaScript

Datatyper i JavaScript

I exemplet med variablerna tilldelades variablerna humoer och aalder data. I det ena fallet var det en ålder, skrivet som ett matematisk tal (ett numeriskt värde), i det andra fallet var det ett ord, en textsträng.

I JAvascript finns det formellt JavaScript accepterar tre olika typer av data: textsträngar (strings), Numeriska data (siffror, numbers), samt booleska värden (Boolean values). Olika regler gäller för de olika datatyperna.

vissa programmeringsspråk skiljer noga på vilka datatyper som tilldelas vilka variabler, JavaScript är inte noga med detta, vilken variabel som helst kan innehålla vilken datatyp som helst.

Textsträngar

Textsträngar kan beskrivas som ett eller flera tecken som kan läsas, för att en textstäng ska förstås som en sådan innesluts den i citationstecken. Citationstecknen kan vara vanliga dubbla (") eller enkla ('), vilka du väljer spelar ingen roll för skriptets funktion. Det kan dock spela roll för kodens läsbarhet. Du kan hamna i situationer när det blir svårt att hålla reda på vilka citationstecken som hänger ihop med vilka, då är det bra att ha två varianter för att kunna hålla reda på dem.

let humoer = "grinig";`

betyder alltså exakt samma sak som

let humoer = 'grinig';`

Om vi tar ett exempel som:

let smeknamn = "De kallar mig "Norpan"!";`

så tycker man kanske att det skulle bli lättare att hålla ordning på vad man har skrivit om man i stället skriver

let smeknamn = 'De kallar mig "Norpan"!';`

En textsträng kan innehålla de flesta tecken du kan skriva, inklusive mellanslag och annat. Du skriver alltså, med några undantag, som du skulle skriva i normala fall när du skriver en text.

Precis som i HTML finns det dock tecken som inte kan användas i textsträngar eftersom de har en funktion i JavaScript. Citationstecknen i "Norpan" ovan är ett exempel.

I JavaScript är det ftramför allt tre tecken som innebär problem, dessa är ", ' och \ (bakvänt snedstreck, backslash).

Escaping

För att ändå kunna använda sig av dessa tecken kan man skapa undantag, på engelska kallas detta för escaping

Genom att sätta ett bakvänt snedstreck, backslash framför tecknet så kommer det visas exakt som det står och inte påverka skriptet i övrigt:

let smeknamn = 'De kallar mig \"Norpan\"!';`

I detta sammanhang kallas ofta det bakåtlutade snedstrecket escapetecken eller undantagstecken. Kombinationen av \-tecknet och tecknet som ska escapeas kallas för en escapesekvens (ibland "undantagssekvens).

Det finns också speciella escapesekvenser som lägger till saker som radbrytningar, tabbar och annat:

\'

apostrof, enkelt citationstecken

\"

vanligt (dubbelt) citationstecken

\

backslash, batåtlutat snedstreck

\n

ny rad

\r

retur (carriage return)

\t

tabb

\b

backsteg

\f

ny sida (form feed)

(överkurs: vill man ta det ännu ett steg till kan man göra en escapesekvens som består av escapetecken + u + Unicodeteckenkod. Till exempel \u2660, som gör ett spaderäss: ♠)

Numeriska värden

Siffror som ska användas som sådana skrivs inte inom citationstecken. Att jag här använder begreppet numeriska värden beror på att du ju faktiskt kan använda sifror i en textsträng också. Du kan dock inte använda textsträngar i matematiska operationer.

let aalder = 42

innebär det numeriska värdet 42, men

let aalder = "42";   `

innebär textsträngen 42, tecknet 4 följt av tecknet 2, dessa är här likvärdiga med bokstäver eller andra tecken och har ingen särskild matematisk innebörd.

Du kan använda dig av positiva såväl som negativa tal (med minustecken före),

-42

fungerar lika bra som

42

Du är inte begränsad till heltal, utan kan använda obegränsat antal decimaler i dina tal,

42.333333

är ett giltigt tal i JavaScript, liksom

-42.333333

Som du ser kan du dock inte använda dig av decimalkomma, som du normalt gör, utan måste använda punkt där du normalt skulle sätta ett komma.

Booleska värden

Booleska värden kan ha ett av två möjliga värden:

true

eller

false

ja eller nej, sant eller falskt.

Ett exempel skulle kunna vara en variabel som handlar om huruvida någon är närvarande på en lektion:

let naervarande = true

Precis som med de numeriska värdena gäller det att undvika citationstecknen

let naervarande = true;

innebär att värdet till variabeln naervarande är sant, eleven är närvarande, men

let naervarande = "true";

innebär att värdet till variabeln är en textsträng bestående av ordet "true".

Null

Null är en särskild form av datatyp som betyder att det inte finns något objekt. Det enda möjliga värdet är null

Undefined

BigInt

Symbol