Fejlbeskeder
Uncaught SyntaxError
En SyntaxError betyder, at browseren ikke kan læse din kode overhovedet, der er en parentes, et anførselstegn eller en krøllet parentes for meget eller for lidt. Hele filen bliver ikke kørt, så det ser ud, som om intet virker.
Ingenting virker, og det er faktisk godt nyt
En SyntaxError opdages, før en eneste linje kører. Browseren kan ikke læse
filen, så den springer den over. Derfor virker intet, heller ikke det, der stod
øverst og var helt fint.
Det er godt nyt, fordi fejlen er rent mekanisk. Der mangler eller er for meget af et tegn, og når du har fundet det, virker alt igen.
Varianterne og hvad de betyder
Unexpected end of input: der mangler en afsluttende } eller ). Du er
løbet tør for fil, mens noget stadig var åbent. Kig efter en if, funktion eller
løkke, der aldrig blev lukket.
Unexpected token '}': der er en krølleparentes for meget, eller også
lukkede du i den forkerte rækkefølge.
Unexpected identifier: der mangler som regel et komma eller et
semikolon, eller også står der to ting ved siden af hinanden, som ikke må.
Invalid or unexpected token: ofte et anførselstegn, der ikke er lukket,
eller en apostrof midt i en tekst med enkelte anførselstegn: 'det's'.
Unexpected token in JSON at position 0: en anden sag: det, du prøver at
fortolke, er ikke JSON. Se JSON.
Identifier 'x' has already been declared: du har skrevet let x to gange i
samme blok. Fjern let på den anden.
Sådan finder du den
- Kig på linjenummeret, og på linjen ovenfor. Fejlen opdages tit et par linjer efter, hvor den blev begået.
- Lad editoren hjælpe. Sæt markøren ved en krølleparentes; de fleste editorer fremhæver den, der hører sammen med den. Fremhæves den forkerte, ved du hvor problemet er.
- Ret indrykningen. Indryk hele filen ordentligt (de fleste editorer kan gøre det for dig med en tastekombination). En blok, der pludselig springer ind eller ud, peger lige på den manglende parentes.
- Halvér. Kommentér den nederste halvdel af filen ud. Forsvinder fejlen, er den dernede.
Undgå dem fremover
- Skriv parenteser i par. Skriv
{}og gå så ind imellem dem. De fleste editorer gør det automatisk; lad være med at slette den halve. - Indryk mens du skriver, ikke bagefter. Fejlen bliver synlig med det samme.
- Kør koden ofte. Fem linjer, kør, fem linjer mere. Så ved du altid, hvor fejlen kom fra. Den er i de sidste fem linjer.
- Brug en editor med farvelægning. En uafsluttet tekststreng er let at se, når resten af filen skifter farve.
Det sidste punkt er værd at nævne før den skriftlige eksamen: skal du skrive kode i et miljø, du ikke selv har sat op, mister du måske den hjælp. Øv dig et par gange uden.
Kort opsamling
- Filen kører slet ikke, så alt ser ødelagt ud.
- Kig på linjen i beskeden og på linjen ovenfor.
- Det er næsten altid en parentes, en krøllet parentes eller et anførselstegn.
- Kør koden ofte, så fejlen altid er i det, du lige skrev.
Læs videre
- Fejlfinding Sådan finder du fejl i JavaScript uden at gætte. Læs fejlbeskeden, brug console.log systematisk, og indsnævr problemet. Forklaret på dansk.
- Cannot read properties of undefined Cannot read properties of undefined forklaret på dansk. Hvad fejlen betyder, de fire almindelige årsager, og hvordan du finder den på under et minut.
Senest gennemgået .