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
console.log("Antall liv:", liv);
// Resultat i konsoll: Antall liv: 3
Eksempel 2: Hvilken del av koden kjøres?
console.log("Game Over kjører nå");
} else {
console.log("Spillet fortsetter");
}
Kommentarer
Eksempel 1: Deaktivere en linje som gir feil
// 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.
function visTall() {
console.log(global); // Fungerer!
}
console.log(global); // Fungerer!
Lokal Variabel
Lages inne i en funksjon (eller en blokk). Kan BARE brukes der.
let lokal = "Jeg er skjult";
// lokal kan brukes her!
}
console.log(lokal); // FEIL! lokal finnes ikke her.
...
// 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.