JavaScript Academy · Lektion

Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster)

Använd intuition för Big-O och fokusera på heta kodvägar. Ersätt nästlade genomgångar med Set/Map, undvik upprepat arbete och håll koden liten och tydlig.

Lektion 1 av 38 steg

Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster) är en gratis lektion i JavaScript Academy på CoddyKit. Detta är lektion 1 av 3. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för JavaScript Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i JavaScript Academy innehåller totalt 3 lektioner.

Överblick

Mål: Nå snabba förbättringar utan komplicerad teori.

  • Big-O-intuition: undvik dubbla loopar
  • Varma och kalla kodvägar: optimera det som körs oftast
  • Set/Map för snabba uppslag
  • Gör arbetet en gång och återanvänd resultatet
Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster) — illustration 1

Nästlad genomgång = kostsam

Nästlade genomgångar mångdubblar arbetet. Varje includes går igenom arrayen igen.

// Bad pattern: nested scan for membership (can be ~O(n^2))
const haystack = ["a","b","c","d","e"];
const needles = ["b","e","x"];
const foundSlow = [];

for (const n of needles) {
  // includes scans the array each time
  if (haystack.includes(n)) {
    foundSlow.push(n);
  }
}
console.log("slow found:", foundSlow);
Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster) — illustration 2

Set för medlemskapskontroll

Skapa ett Set en gång och använd has för snabb medlemskapskontroll. Då försvinner den inre genomgången.

// Better: build a Set once, then O(1)-ish checks (~O(n) overall)
const fastSet = new Set(haystack);
const foundFast = [];
for (const n of needles) {
  if (fastSet.has(n)) {
    foundFast.push(n);
  }
}
console.log("fast found:", foundFast);
Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster) — illustration 3

Map för räkning

Map lagrar antal för uppslag som är ungefär O(1) senare; undvik att gå igenom arrayer igen för att räkna om.

// Build a frequency map once instead of scanning many times
const words = ["a","b","a","a","c","b"];
const freq = new Map();

for (const w of words) {
  const old = freq.get(w) || 0;
  freq.set(w, old + 1);
}

console.log("count a:", freq.get("a"));
console.log("count b:", freq.get("b"));
Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster) — illustration 4

Gör det en gång (cache)

Om ett värde återkommer kan Ni cachelagra resultatet. Håll cachelagren små och tydliga för nybörjare.

// Do work once and reuse (tiny cache)
function heavy(x) {
  // pretend heavy math
  return x * x + 1;
}

const cache = new Map();

function heavyCached(x) {
  if (cache.has(x)) return cache.get(x);
  const val = heavy(x);
  cache.set(x, val);
  return val;
}

console.log("first:", heavyCached(5));
console.log("second:", heavyCached(5)); // cached
Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster) — illustration 5

Fokusera på varma kodvägar

Varm kodväg: körs många gånger (optimera här). Kall kodväg: sällsynt kod (håll den enkel).

  • Ta bort inre loopar i varm kod.
  • Använd Set/Map för varma medlemskaps- och räkneuppgifter.
  • Mät senare; börja med tydlighet.
Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster) — illustration 6

Quiz om optimering av medlemskapskontroll

Snabb kontroll: Minska nästlade genomgångar.

Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster) — illustration 7

Sammanfattning

Sammanfattning: Undvik nästlade genomgångar, använd Set/Map för uppslag och räkning, och gör arbetet en gång. Fokusera på varma kodvägar och håll kall kod enkel.

Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster) — illustration 8
Gratis att börja

Lär dig JavaScript med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
59
Lektioner
200

Vanliga frågor

Är lektionen ”Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster)” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen JavaScript Academy, inklusive ”Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster)”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i JavaScript Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster)”?

Använd intuition för Big-O och fokusera på heta kodvägar. Ersätt nästlade genomgångar med Set/Map, undvik upprepat arbete och håll koden liten och tydlig. Ni övar på JavaScript Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig JavaScript Academy?

Du behöver inga förkunskaper. Utbildningen i JavaScript Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 3.

Hur lång tid tar lektionen ”Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster)”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här JavaScript Academy-lektionen?

Ja. Varje JavaScript Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Grunderna i Big-O, heta och kalla kodvägar (nybörjarvinster)
  2. Undvik minnesläckor — closures, timers och referenser
  3. Introduktion till profilering (Node/DevTools) — små tidsvanor
← Tillbaka till JavaScript Academy