Sobes.tech
Junior

Wat is het verschil tussen let en var?

sobes.tech AI

Antwoord van AI

var heeft functioneel of globaal bereik, kan worden hergedefinieerd en overschreven. Is onderhevig aan Hoisting, wordt geïnitialiseerd als undefined. let heeft blokscope, kan worden overschreven, maar niet hergedefinieerd in hetzelfde scope. Ook onderhevig aan Hoisting, maar bevindt zich in de "tijdelijke dode zone" tot de initialisatie.

Vergelijkingstabel:

Kenmerk var let
Scope Functioneel/Globaal Blokscope
Herdefiniëren Ja Nee
Overschrijven Ja Ja
Hoisting Ja Ja
Initialisatie undefined - (tijdelijke dode zone)

Voorbeeld:

// var
function voorbeeldVar() {
  var x = 10;
  if (true) {
    var x = 20; // Herdefinitie van x
    console.log(x); // 20
  }
  console.log(x); // 20
}

// let
function voorbeeldLet() {
  let y = 10;
  if (true) {
    let y = 20; // Nieuwe variabele y in blokscope
    console.log(y); // 20
  }
  console.log(y); // 10
}

voorbeeldVar();
voorbeeldLet();