edubun
Nederlands

Variabelen: let en const

Een variabele is een naam voor een waarde. Na let score = 10 staat het woord score voor 10 totdat je er iets anders aan toekent.

Een waarde benoemen om die opnieuw te gebruiken

Tot nu toe typte je elke waarde direct in console.log en vergat je haar daarna. Echte programma's moeten dingen onthouden: de score van de speler, de artikelen in een mandje, de naam die iemand heeft ingetypt. Een variabele is een benoemd vakje dat een waarde bevat. Je maakt het eenmaal en gebruikt de naam overal waar je de waarde nodig hebt.

let score = 10;
console.log(score);        // 10
console.log(score + 5);    // 15

De regel let score = 10; doet twee dingen. Het sleutelwoord let declareert een nieuwe variabele met de naam score en = 10 zet de waarde 10 erin. Het gelijkteken betekent hier niet ‘is gelijk aan’ zoals bij wiskunde. Het betekent ‘sla de waarde rechts op onder de naam links’. Programmeurs noemen dit toekenning. Als score later zonder aanhalingstekens voorkomt, zoekt JavaScript het vakje op en gebruikt de waarde erin.

Een waarde veranderen met let

Een variabele die met let is gedeclareerd, kun je later een nieuwe waarde geven. Je schrijft de naam, een gelijkteken en de nieuwe waarde, ditmaal zonder let, omdat de variabele al bestaat:

let score = 10;
score = 25;
console.log(score);        // 25
score = score + 5;
console.log(score);        // 30

De regel score = score + 5; lijkt wiskundig onmogelijk, maar als instructie is hij logisch. JavaScript evalueert eerst de rechterkant, de huidige score plus 5, wat 30 is. Daarna slaat het 30 opnieuw op in score. De oude waarde is weg. Dit patroon, een variabele lezen en er een bijgewerkte waarde in opslaan, is hoe programma's tellen, totalen optellen en alles bijhouden wat verandert.

const voor waarden die vast blijven

Het sleutelwoord const declareert ook een variabele, maar die moet meteen een waarde krijgen en kan nooit een nieuwe toegewezen krijgen. Als je dat probeert, stopt het programma met TypeError: Assignment to constant variable. Die fout is nuttig. Als een waarde niet hoort te veranderen, zoals het aantal dagen in een week of een belastingtarief, voorkomt declareren met const dat een fout elders in het programma haar ongemerkt overschrijft.

const daysInWeek = 7;
console.log(daysInWeek * 4);   // 28
// daysInWeek = 8;  would stop with a TypeError

Een goede gewoonte, aanbevolen door veel stijlgidsen, is standaard const gebruiken en alleen op let overstappen als je weet dat de waarde zal veranderen. Je kunt ook het oudere sleutelwoord var tegenkomen in code op het web. Het werkt nog, maar volgt lossere regels die verrassende fouten veroorzaken, dus in deze cursus gebruik je alleen let en const.

Regels voor namen

Een variabelenaam mag letters, cijfers, het onderstrepingsteken _ en het dollarteken $ bevatten, maar niet met een cijfer beginnen en geen spaties bevatten. Dus total2 is goed en 2total niet. Namen zijn hoofdlettergevoelig: score en Score zijn twee verschillende variabelen. Sommige woorden zoals let, const, if en for zijn gereserveerd door de taal en mogen geen naam zijn. Als een naam uit meerdere woorden bestaat, schrijven JavaScript-programmeurs hem meestal in camelCase: het eerste woord met kleine letters en elk volgend woord beginnend met een hoofdletter, zoals totalPrice of daysInWeek. Kies namen die zeggen wat de waarde betekent; price vertelt een lezer veel meer dan x.

Wel gedeclareerd maar leeg, en te vroeg gebruikt

Als je let answer; zonder waarde schrijft, bestaat de variabele maar bevat zij undefined totdat je iets toekent. Een let- of const-variabele gebruiken op een regel boven de declaratie is een fout: ReferenceError: Cannot access 'answer' before initialization. Een naam gebruiken die helemaal nooit gedeclareerd is, geeft ReferenceError: answer is not defined. Beide meldingen betekenen praktisch hetzelfde: controleer de spelling en zorg dat de declaratie eerst komt.

let name = value; kan later veranderen. const name = value; verandert nooit.

variabeleEen naam die een waarde bevat
declarerenEen variabele maken met let of const
toekenningEen waarde opslaan met =
letDeclareert een variabele waarvan de waarde kan veranderen
constDeclareert een variabele waaraan je geen nieuwe waarde kunt toekennen
camelCasetotalPrice: latere woorden beginnen met een hoofdletter
undefinedWat een gedeclareerde variabele bevat voordat ze een waarde krijgt
gereserveerd woordEen woord zoals let of if dat geen naam kan zijn
  1. Wat drukt deze code af?
    let x = 4;
    x = x + 3;
    console.log(x);
  2. Wat drukt deze code af?
    let n = 2;
    n = 10;
    n = n * 3;
    console.log(n);
  3. Wat drukt deze code af?
    let city = "Busan";
    console.log("city");
    • Busan
    • city
    • undefined
  4. Wat gebeurt er als je dit uitvoert?
    const max = 5;
    max = 6;
    • max wordt 6
    • TypeError: Assignment to constant variable
    • Niets, max blijft ongemerkt 5
  5. Welke is een geldige variabelenaam?
    • 2ndPlace
    • second place
    • secondPlace
  6. Wat drukt deze code af?
    let total;
    console.log(typeof total);
  7. Wat drukt deze code af?
    let a = 5;
    let b = a;
    a = 9;
    console.log(b);
  8. Zijn score en Score dezelfde variabele?
    • Ja
    • Nee
  9. Welk sleutelwoord moet je gebruiken voor het aantal minuten in een uur?
    • const
    • let
    • var
  10. Wat drukt deze code af?
    let word = "hi";
    word = word + word;
    console.log(word);
Belangrijkste punten
  • let name = value; declareert een variabele die kan veranderen.
  • const name = value; declareert een variabele waaraan je geen nieuwe waarde kunt toekennen.
  • = betekent opslaan, niet is gelijk aan.
  • x = x + 1 leest x, telt 1 op en slaat het resultaat weer op.
  • Namen: letters, cijfers, _ en $, geen cijfer vooraan, hoofdlettergevoelig, camelCase.
Bronnen van deze cursus (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17).

Geraadpleegd: 2026-10-17