Hoisting - YunusEmreCMD/blokTech GitHub Wiki

Functies en variabelen zijn hoisted (letterlijk: "getakeld" of "omhoog gehesen") Hoisting is het gedrag in JavaScript waarbij declaraties naar het begin van een scope verplaatst worden (globale scope of de scope van de huidige functie).

Dit betekent dat we functies of een variabele kan gebruiken voordat deze gedeclareerd zijn. Met andere woorden: een functie of een variabele kan gedeclareerd worden nadat deze al is gebruikt. Hoisting heeft te maken met hoe en wanneer je variables kan aanroepen en hoe ze gedeclareerd worden. Normaal declareerd je een variabele om deze te gebruiken en roep je functies aan nadat je de functie hebt geschreven, maar met hoisting kan dit dus ook andersom.

Een voorbeeld van hoe we normaal functies declareren:

Function Test() {
	var hallo = “Hello World”;
	Console.log(hallo);
}
Test();

Maar dit werkt ook

Test();
Function Test() {
	hallo = “Hello World!”;
	var hallo;
	Console.log(hallo);
}

De reden dat dit werkt is, omdat variabelen en functies worden gehoist op de hoogste niveau / aan de bovenkant van de scope. Een functie als een variabele wordt niet gehoist, dus dat zou niet werken op deze manier.


Gebruikte bronnen

Hoisting - Woordenlijst | MDN. (2019, 23 maart). Geraadpleegd op 7 maart 2021, van https://developer.mozilla.org/nl/docs/Glossary/Hoisting#technisch_voorbeeld

5-Minute Web Dev. (2018, 29 januari). Hoisting in JavaScript Explained in (About) 5 Minutes [Videobestand]. Geraadpleegd van https://www.youtube.com/watch?v=AplVrrwY1TI&ab_channel=5-MinuteWebDev