Front end: Hoisting - lottekoblens/matching-application GitHub Wiki

Hoisting

Functies en variabelen zijn hoisted. Hoisted houdt in dat de declaratie van een variabele of functie naar het begin van de scope verplaatst wordt. Hierdoor wordt het mogelijk om een functie of variabele te gebruiken voordat deze gedeclareerd is. Het maakt dan niet uit of het gaat om een globale of lokale scope, bij beide wordt het naar de top van de scope verplaatst.

x = 10; 

elem = document.getElementById(“element”); 
elem.innerHTML = x;                     

var x; 

Zoals in de code te zien is, wordt de var pas onderaan de code gedeclareerd, maar wordt er bovenaan al een waarde aan meegegeven. De variabele wordt pas gedeclareerd nadat het al gebruikt is. Dit wordt dus mogelijk door hoisting.

Met let en const werkt het anders, ze worden als het ware wel naar de bovenkant van het blok verplaatst, maar ze worden nog niet geïnitialiseerd.

fiets = “Driewieler”;
let fiets;

Wanneer we bovenstaande code uitvoeren, krijg je een resultaat ReferenceError. Hoisting werkt hier dus niet.

Bij const gebeurt het volgende:

fiets = “Driewieler”;

const fiets;

Wanneer deze code wordt gerund, vindt er een syntax error plaats waardoor de code simpelweg niet zal runnen. Bij const werkt hoisting dus ook niet.

Bronnen: