Junior
Wat is de scope in JavaScript?
sobes.tech AI
Antwoord van AI
De scope (Bereik) in JavaScript is de context waarin variabelen en functies gedefinieerd en toegankelijk zijn.
Kort gezegd bepaalt het waar in de code naar een variabele of functie verwezen kan worden.
Er zijn verschillende types scope:
- Globale scope (Global Scope): Variabelen die buiten functies worden gedeclareerd, bevinden zich in de globale scope. Ze zijn overal in de code toegankelijk.
// Globale variabele let globalVar = "Ik ben overal zichtbaar"; function showGlobal() { console.log(globalVar); // Beschikbaar binnen de functie } showGlobal(); - Lokale (Functie) scope (Local/Function Scope): Variabelen die binnen een functie worden gedeclareerd, bevinden zich in de lokale scope van die functie. Ze zijn alleen binnen die functie en geneste functies toegankelijk, maar niet daarbuiten.
function showLocal() { // Lokale variabele let localVar = "Zie ik alleen hier"; console.log(localVar); } showLocal(); // console.log(localVar); // Fout: localVar is niet gedefinieerd - Blok scope (Block Scope): Geïntroduceerd in ES6 (ES2015) met
letenconst. Variabelen gedeclareerd metletofconstbinnen accolades ({}), zoals in codeblokken, lussen of voorwaarden, hebben blokscope. Variabelen gedeclareerd metvarhebben geen blokscope.if (true) { // Variabele met blokscope let blockVar = "Alleen zichtbaar in dit blok"; console.log(blockVar); } // console.log(blockVar); // Fout: blockVar is niet gedefinieerd for (let i = 0; i < 2; i++) { // Variabele met blokscope in de lus console.log(i); } // console.log(i); // Fout: i is niet gedefinieerd (als let is gebruikt)
Het is ook belangrijk om het concept van scope keten (Scope Chain) te begrijpen. Wanneer JavaScript probeert de waarde van een variabele te vinden, zoekt het eerst in de huidige scope. Als het niet gevonden wordt, gaat het naar de externe (ouder) scope en zo verder, tot de globale scope. Als de variabele ook daar niet gevonden wordt, wordt een ReferenceError gegenereerd.