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) |
\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".