Javascript Flashcards
Wat is het verschil tussen ‘interpreters’ en ‘compilers’?
Interpreters: lezen de code door.
Compilers: vertalen de code
Leesbare menselijke code OF abstracte one liners?
Leesbare menselijke code, want mensen werken met je bestanden. De rest kan een systeem afhandelen.
Wat is een ‘call stack’?
Call stack slaat functies op die je aanroept (call) en stapelt ze wanneer je dieper in de functie naar andere functies verwijst. Eenmaal klaar in de diepst liggende functie, dan begint het afbouwen van de call stack.
Wat is de Global Execution Context?
Global Execution Context is de eerste functie om een pagina te laden. Ook wel het window object.
Wat is een Memory Heap?
Memory Heap is een ruimte in de JS engine die je kan gebruiken om informatie in op te slaan, zoals constante variabelen en functies. Alles wat je definieert.
Wat is een goed gebruik met ‘listeners’?
Ze ook weer stoppen
Const object = { name: Maik }
Const obj = object
Obj.name = Tess
Wat is de waarde van object.name?
Tess, want je refereert naar een object. Het is een doorgeefluik. De juiste oplossing hier is om er een clone van te maken:
…object
Functie in een object method die gebruik maakt van ‘this’, waar refereert die naar?
Het window object, omdat de ‘this’ niet is toegewezen. Tenzij je het volgende doet:
Functienaam.bind(this)
Of
Const self = this
Wat gebeurd er als je 5 toewijst aan een constant variable?
Dan voegt JS dit automatisch aan een Number object toe. Hierdoor kun je gebruik maken van de methods die het Number object bezit.
Class: een method staat buiten de constructor in een class, waarom?
Bij ‘new’ wordt de constructor iedere keer uitgevoerd vanwege nieuwe data. Terwijl de methode gebruikt wordt door alle instanties van de class. Dit zou extra geheugen in beslag nemen.
FP: wat is het voordeel om this.name = name te gebruiken in een Functie?
Je kan dan de name die als parameter aan de Functie wordt meegegeven direct toewijzen aan het ‘new’ object. Waardoor je newObject.name kan doen.
Wat is impliciet binding?
Het woord ‘this’ wordt automatisch toegekend aan het object.
Wat is expliciet binding?
Bijna hetzelfde als impliciet, maar dan gebruik je .bind() om het object toe te wijzen aan een functie waar het ‘this’ keyword naar moet verwijzen.
Waarom wil je mutatie van variabelen en objecten voorkomen?
Omdat het onvoorspelbaar gedrag in de code kan veroorzaken. Je veranderd iets dat een ander doel had.
Advies is ook om nieuwe variabelen te maken of te spreaden in het geval van een object.
Wat doet concat()?
Bijvoorbeeld: user.cart = user.cart.concat(item)
Dit is het mergen van arrays. Het maakt een nieuwe array van twee bestaande.
Alleen concat geeft een nieuwe array terug. Als je deze toewijst aan de bestaande array zoals het voorbeeld, dan blijft het oude object intact.