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.

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.

var humoer = "grinig";
betyder alltså exakt samma sak som
var humoer = 'grinig';

Om vi tar ett exempel som:

var 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
var 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:

var 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.

var aalder = 42;
innebär det numeriska värdet 42, men
var 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:

var naervarande = true;

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

var naervarande = true;
innebär att värdet till variabeln naervarande är sant, eleven är närvarande, men
var naervarande = "true";
innebär att värdet till variabeln är en textsträng bestående av ordet "true".