17. september 2024

Kodens struktur

Den første ting du skal lære er byggestenene for kode.

Udsagn (statements)

Et udsagn er en syntakskonstruktion eller kommando der udfører en handling.

Du har allerede set et udsagn, alert('Hello, world!'), der viste meddelelsen “Hello, world!”.

Du kan have så mange udsagn du vil i din kode. Udsagn adskilles af et semikolon (;)

Dette eksempel splitter “Hello World” op i to advarsler:

alert('Hello'); alert('World');

Normal skrives udsagn på hver sin linje for at gøre koden mere læsbar:

alert('Hello');
alert('World');

Semikolon

Et semikolon kan i de fleste tilfælde udelades, hvis der er et linjeskift.

Dette vil også virke:

alert('Hello')
alert('World')

Her fortolker JavaScript linjeskiftet som et implicit semikolon. Dette kaldes en automatisk semikolon indsættelse.

I de fleste tilfælde vil et linjeskift forstås som et semikolon. Men “i de fleste tilfælde” betyder ikke “altid!”

Der er tilfælde, hvor et linjeskift ikke betyder semikolon. For eksempel:

alert(3 +
1
+ 2);

Koden viser 6 fordi JavaScript ikke indsætter et semikolon her. Det er intuitivt åbenlyst at, hvis en linje ender med et plus "+", så er det et “ufuldstændigt udtryk”, så et semikolon er ikke påkrævet. I dette tilfælde virker det som forventet.

Men, der er situationer hvor JavaScript “fejler” med at regne ud om der virkelig er behov for et semikolon.

Fejl der opstår på denne måde kan være svære at finde og rette.

Et ekempel på en fejl

Hvis du er nysgerrig efter et konkret eksempel på sådan en fejl, så prøv denne kode:

alert("Hello");

[1, 2].forEach(alert);

Tænk ikke for meget på de hårde paranteser [] og forEach endnuyet. Dem lærer du om senere. For nu, så tænk bare, at denne kode vil vise en dialogboks med tallet 1 efterfulgt af tallet 2.

Prøv nu, at tilføje en alert før den anden kode og lad være med at afslutte med semikolon:

alert("Nu vil der ske en fejl")

[1, 2].forEach(alert);

Nu vil den første advarsel vise sig og bagefter vil konsollen melde fejl.

Men, alt vil virke fint, hvis du sætter et semikolon efter alert:

alert("Alt er fint nu");

If we run this code, only the first `Hello` shows (and there's an error, you may need to open the console to see it). There are no numbers any more.

Nu vil du se teksten "Alt er fint nu" efterfulgt af `1` and `2`.


Fejlen her opstår fordi JavaScript ikke forventer et semikolon før hårde paranteser `[...]`.

Så, fordi semikolon ikke sættes ind automatisk vil det blive opfattet som ét langt udsagn. Her er hvordan motoren ser det:

```js run no-beautify
alert("Nu vil der ske en fejl")[1, 2].forEach(alert)

Men det burde være to seperate udsagn og ikke ét. Sådan en sammentrækning er forkert og derfor melder JavaScript fejl. Denne type fejl kan også ske i andre sammenhænge.

Jeg anbefaler at du sætter semikolon mellem udsagn – også selvom de bliver adskilt af linjeskift. Så, opsummeret – det er muligt at udelade semikolon i de fleste tilfælde. Men det er sikre – specielt for en begynder – at bruge dem.

Kommentarer

Som tiden går og programmer bliver mere og mere komplekse, er det nødvendigt at tilføje kommentarer der beskriver hvad koden gør og hvorfor.

Kommentarer kan puttes ind alle steder i et script. De påvirker ikke afviklingen af koden fordi JavaScript-motoren ganske enkelt ignorerer dem.

Enkeltlinjeskommentar starter med for skråstreger //.

Resten af linjen vil være en kommentar. Den kan stå på en linje for sig selv eller stå efter et udsagn.

Som her:

// Denne kommentar står på sin egen linje
alert('Hello');

alert('World'); // Denne kommentar står efter et udsagn

Flerlinjeskommenter starter med en skråstreg og en stjerne /* og slutter med en stjerne og en skråstreg */.

Som her:

/* Et eksempel med to beskeder.
Dette er en kommenatar over flere linjer.
*/
alert('Hello');
alert('World');

Indholdet af kommentarer ignoreres, så hvis du putter kode ind /* … */ vil det ikke blive afviklet.

Nogle gange kan det være praktisk, hvis du vil deaktivere dele af din kode:

/* Kommenterer noget kode ud
alert('Hello');
*/
alert('World');
Brug genvejstaster!

I de fleste editorer kan du kommentere kode ud ved at trykke genvejstasten Ctrl+/ for en enkelt linje og noget i stil med Ctrl+Shift+/ – for flere linjer (marker linjer med kode og tryk genvejskombinationen). For Mac, prøv Cmd i stedet for Ctrl og Option i stedet for Shift. Det danske tastaturlayout har ikke nem tilgang til skråstreg som genvej. Derfor har editorer som f.eks. VSCode genvejen Ctrl+'

Indlejrede kommentarer er ikke understøttet!

Du kan ikke have /*...*/ inde i et andet sæt /*...*/.

Sådan en kode vil resultere i en fejl:

/*
  /* Indlejret kommentar ?!? */
*/
alert( 'World' );

Husk, at kommenter din kode.

Kommentarer øger størrelsen på koden, men det er ikke et problem. Der findes mange værktøjer til at minimere din kode før den endeligt sendes til en produktionsserver. Det vil fjerne alle kommentarer, så de ikke er med i det endelige script. Derfor har kommentarer ikke nogen negativ effekt på den endelige kode.

Senere i tutorialen vil du læse et kapitel Kvalitet af kode der forklarer, hvordan du skriver bedre kommentarer.

Tutorial-oversigt

Kommentarer

læs dette før du kommenterer…
  • Hvis du har forslag til forbedringer - så opret venligst et GitHub-issue eller en pull request i stedet for at kommentere.
  • Hvis du ikke forstår noget i artiklen - så uddyb venligst.
  • For at indsætte få ord kode, brug <code>-taggen, for flere linjer - omslut dem i <pre>-tag, for mere end 10 linjer - brug en sandbox (plnkr, jsbin, codepen…)