Debugging

Lær hvordan du finner feil i koden din.

1. Enkel Debugging

Debugging betyr å finne og rette feil. De enkleste verktøyene vi har er console.log() og kommentarer.

console.log()

Eksempel 1: Sjekk verdien til en variabel

let liv = 3;
console.log("Antall liv:", liv);
// Resultat i konsoll: Antall liv: 3

Eksempel 2: Hvilken del av koden kjøres?

if (liv < 1) {
  console.log("Game Over kjører nå");
} else {
  console.log("Spillet fortsetter");
}

Kommentarer

Eksempel 1: Deaktivere en linje som gir feil

let svar = 42;
// svar = "Feil type"; // Jeg kommenterte ut denne fordi den ødela koden min

Eksempel 2: Skru av en hel kodeblokk

/*
  if (usikkerKode) {
    krasjProgrammet();
  }
*/

2. Global vs Lokal Scope

"Scope" bestemmer hvor i koden en variabel er synlig og kan brukes.

Global Variabel

Lages utenfor funksjoner eller andre kodeblokker, dvs. direkte i <script>, gjerne samlet på toppen for bedre oversikt. Kan brukes overalt i scriptet.

let global = 5;

function visTall() {
  console.log(global); // Fungerer!
}

console.log(global); // Fungerer!

Lokal Variabel

Lages inne i en funksjon (eller en blokk). Kan BARE brukes der.

function hemmelig() {
  let lokal = "Jeg er skjult";
   // lokal kan brukes her!
}

console.log(lokal); // FEIL! lokal finnes ikke her.
for (let i = 0; i < 10; i++) {
  ...
   // i kan brukes her!
}

console.log(i); // FEIL! i finnes ikke her.

3. Feilmeldinger i Svelte

Internal Server Error 500

Ser du denne feilen på nettsiden? Det er en generell melding som betyr "Noe gikk galt på serveren", men den sier ikke hva.

👉 SJEKK KONSOLLEN!

dev`) eller i nettleserens konsoll (F12).

Topp 5 Feilmeldinger:

  • 1. ReferenceError: x is not defined
    Du prøver å bruke en variabel som ikke finnes eller er skrevet feil.
  • 2. Assignment to constant variable
    Du prøver å endre en `const` som om det var en `let`.
  • 3. TypeError: Cannot read properties of undefined
    Du prøver å finne noe i et array/objekt som ikke finnes (f.eks. `spiller[0]` hvis `spiller` mangler).
  • 4. SyntaxError: Unexpected token
    Du har glemt å lukke en parentes `)` eller krøllparentes `}`, eller har en skrivefeil.
  • 5. TypeError: x is not a function
    Du prøver å kjøre en variabel som en funksjon (f.eks. `liv()`), men `liv` er kanskje bare et tall.

🗝️ Sentrale Begreper

  • Console.log: Utviklerens bestevenn. Skriver ut verdier til konsollen slik at du kan sjekke om variabler har riktig verdi, hvilke deler av koden kjøres, osv.
  • Kommentarer: Tekst som maskinen ignorerer. Bruk // for én linje og /* ... */ for flere linjer.
  • Global Scope: Variabler som er tilgjengelige overalt i filen. Deklarer disse direkte i <script>
  • Local Scope: Variabler som kun lever inne i en funksjon eller blokk { ... }, f.eks. for-løkke, if-betingelse, o.l.