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();