Tilbake
5.2
Variabler, datatyper og operatorer i JavaScript

5.2 Variabler, datatyper og operatorer i JavaScript

Dykk inn i JavaScripts typesystem, operatorer for beregninger og logikk.

60 min
8 oppgaver
DatatypeNumberStringBoolean
Du leser den lesevennlige versjonen
Din fremgang i kapitlet
0 / 8 oppgaver

Et språk som gjetter typen for deg

JavaScript er dynamisk typet: du deklarerer ikke hvilken type en variabel skal ha – typen bestemmes automatisk av verdien du tilordner. Det gir fleksibilitet, men også overraskelser hvis du ikke forstår systemet. En datatype bestemmer hvilke verdier en variabel kan ha og hvilke operasjoner som er lov. JavaScript har syv primitive typer og én sammensatt type (object).

De tre viktigste primitive typene er number, string og boolean. Number dekker alle tall, både heltall og desimaltall – det finnes ingen egen heltallstype. Pass på spesialverdiene: 1 / 0 gir Infinity, "hei" * 2 gir NaN (Not a Number), og 0.1 + 0.2 gir overraskende 0.30000000000000004 på grunn av flytepunktsfeil. String er tekst i anførselstegn, og en spesielt nyttig variant er template literals med backticks, som støtter innebygde uttrykk: ` navner{navn} er{alder} år . **Boolean** er true eller false`.

I tillegg har JavaScript to verdier for «ingenting». undefined betyr at en variabel er deklarert, men ikke har fått en verdi ennå. null betyr et bevisst fravær av verdi – som «brukeren er ikke logget inn ennå». En kjent kuriositet: typeof null gir "object", en velkjent bug i språket som aldri ble rettet.

📝Oppgave Quiz 1

Operatorer og snikende konvertering

JavaScript har de vanlige regneoperatorene: +, -, *, /, % (modulo/rest) og ** (potens). Du kan også forkorte tilordning med +=, -=, *= og /=, samt øke og minke med tall++ og tall--.

For sammenligning gjelder en jernregel: bruk alltid === (streng likhet), aldri == (løs likhet). Strenge operatorer krever at både verdi og type stemmer, mens == utfører automatisk typekonvertering som gir uventede resultater. For eksempel er 5 === "5" lik false (ulike typer), mens 5 == "5" faktisk er true – og enda rarere: 0 == "" er true. Logiske operatorer er && (og), || (eller) og ! (ikke).

Den virkelig snikende fellen er implisitt typekonvertering (coercion). Plussoperatoren er spesiell: når én side er en streng, gjør den den andre om til streng og limer dem sammen. Derfor er "5" + 3 lik "53", mens "5" - 3 faktisk er 2 – fordi minus tvinger fram tallkonvertering. Likeledes gir true + 1 verdien 2. For å unngå kaos kan du konvertere eksplisitt med Number("42"), parseInt("42px"), String(42) og Boolean(0).

📝Oppgave Quiz 2

Arrays og objekter – datastrukturene overalt

Den sammensatte typen object dekker to enormt viktige strukturer. En array er en ordnet liste av verdier, opprettet med klammeparenteser: const frukter = ["eple", "banan", "appelsin"]. Du henter elementer med indeks, og husk at indeksen starter på 0 – så frukter[0] er «eple». frukter.length gir antall elementer. Et viktig poeng: selv om en array er const, kan du fortsatt endre innholdet (frukter[1] = "mango"); det er bare selve variabelen som ikke kan byttes ut.

Arrays har mange nyttige metoder. push legger til bakerst, pop fjerner det siste, includes sjekker om en verdi finnes, og indexOf finner posisjonen. De kraftigste er map (lager en ny array ved å transformere hvert element), filter (beholder bare elementer som oppfyller en betingelse) og reduce (slår alle sammen til én verdi, for eksempel en sum). Filtrerer du [10, 20, 30, 40, 50]t > 25, sitter du igjen med tre elementer (30, 40, 50).

Et objekt er en samling av nøkkel-verdi-par og brukes til å gruppere relaterte data: const elev = { fornavn: "Sara", alder: 17 }. Du henter verdier med punktnotasjon (elev.fornavn) eller klammenotasjon (elev["fornavn"]), endrer dem direkte, legger til nye med tilordning, og sletter med delete. Objekter kan inneholde både arrays og andre objekter, så skole.adresse.gate graver seg nedover i strukturen. Arrays og objekter er fundamentet for JSON-formatet, som brukes i nesten all datautveksling på webben.

📝Oppgave Quiz 3

Oppsummering

JavaScript er dynamisk typet, med syv primitive datatyper (number, string, boolean, null, undefined med flere) og objekt som sammensatt type. Number dekker alle tall, template literals med backticks gjør tekst smidig, og du må kjenne skillet mellom undefined (ikke satt ennå) og null (bevisst ingenting).

Blant operatorene er regelen om å alltid bruke === framfor == viktig, fordi implisitt typekonvertering ellers gir overraskelser som at "5" + 3 blir "53". Til slutt møtte vi de to strukturene du vil bruke konstant: arrays (ordnede lister med metoder som map, filter og reduce) og objekter (nøkkel-verdi-par). Disse to er grunnlaget for JSON og dataflyten på hele webben.

Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.