JavaScript Academy · Lektion

Block-, funktions- och modulomfattning samt TDZ

Förstå block-, funktions- och modulomfattning. Se TDZ i praktiken och undvik att läcka variabler.

Lektion 2 av 38 steg

Block-, funktions- och modulomfattning samt TDZ är en gratis lektion i JavaScript Academy på CoddyKit. Detta är lektion 2 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.

Introduktion

Mål: Förstå var variabler finns och när de kan användas.

  • Block scope (let/const)
  • Function scope (var)
  • Module scope
  • TDZ-säkerhet
Block-, funktions- och modulomfattning samt TDZ — illustration 1

Demo: block scope

Block scope håller variabler lokala inom ett par klamrar.

// Block scope: let/const exist only inside the braces
let lives = 3;

if (true) {
  const bonus = 5;
  let level = 1;
  console.log("Inside block:", bonus, level);
}

console.log("Lives:", lives);
// Uncommenting next line would fail (not in scope):
// console.log(bonus, level);
Block-, funktions- och modulomfattning samt TDZ — illustration 2

Function scope med var

var har function scope, inte block scope. Föredra let/const i modern JS.

// Function scope: var is visible across the whole function
function demo() {
  if (true) {
    var x = 10; // function-scoped
  }
  console.log("x is visible here:", x); // 10
}
demo();
Block-, funktions- och modulomfattning samt TDZ — illustration 3

Grunderna i module scope

Module scope: bindningar på toppnivå är lokala för filen (ES-moduler).

// Module scope: top-level variables are local to the module file
const appName = "CoddyKit";
console.log("App name:", appName);

// In a real project, this would be its own file/module.
// Other files must import to access appName.
Block-, funktions- och modulomfattning samt TDZ — illustration 4

Temporal Dead Zone

TDZ förhindrar oavsiktlig åtkomst för tidigt. Deklarera först och använd sedan.

// TDZ: using let/const before declaration throws ReferenceError
try {
  // Uncommenting would trigger TDZ:
  // console.log(mode); // ReferenceError
  let mode = "dark";
  console.log("Mode after declare:", mode);
} catch (e) {
  console.log("Caught:", e.message);
}
Block-, funktions- och modulomfattning samt TDZ — illustration 5

Fallgropar med scope

Fallgropar:

  • Blanda inte var med let/const inom samma scope.
  • Deklarera nära användningen.
  • Undvik att läsa värden före deklarationsraden (TDZ).
Block-, funktions- och modulomfattning samt TDZ — illustration 6

Quiz: TDZ

Snabbkontroll: TDZ-beteende.

Block-, funktions- och modulomfattning samt TDZ — illustration 7

Sammanfattning

Sammanfattning: let/const har block scope, var har function scope, moduler har ett eget filscope och TDZ stoppar åtkomst för tidigt.

Block-, funktions- och modulomfattning samt TDZ — 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 ”Block-, funktions- och modulomfattning samt TDZ” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen JavaScript Academy, inklusive ”Block-, funktions- och modulomfattning samt TDZ”, 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 ”Block-, funktions- och modulomfattning samt TDZ”?

Förstå block-, funktions- och modulomfattning. Se TDZ i praktiken och undvik att läcka variabler. 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 2 av 3.

Hur lång tid tar lektionen ”Block-, funktions- och modulomfattning samt TDZ”?

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. let, const och att undvika var
  2. Block-, funktions- och modulomfattning samt TDZ
  3. Namngivning, läsbarhet och vanliga fallgropar
← Tillbaka till JavaScript Academy