Inleiding tot Hoe JavaScript werkt?
JavaScript is een scripttaal die binnen de browser wordt gebruikt voor interactie met de interface. Brendan Eich was de eerste persoon die een JavaScript-engine maakte voor de Netspace Navigator webbrowser bij Netspace. Het is geïmplementeerd in C en zijn codenaam was SpiderMonkey. Mocha was de naam die aanvankelijk aan het project werd gegeven, daarna werd het omgedoopt tot LiveScript en tenslotte, toen Netspace en Sun een licentieovereenkomst sloten, werd het weer omgedoopt tot JavaScript. In dit onderwerp gaan we leren over hoe javascript werkt. We hebben vast al gehoord over populaire engines zoals V8, Spider Monkey en er zijn nog vele anderen. Verschillende engines hebben verschillende “codenamen”, bijvoorbeeld:
- V8 – engine gebruikt in Opera & Chrome.
- SpiderMonkey – engine gebruikt in Firefox.
- Trident, Chakra – engine gebruikt in IE & Nitro.
- ChakraCore – engine gebruikt in Microsoft Edge.
- SquirrelFish – engine gebruikt in Safari.
De motor die wordt gebruikt voor javascript bestaat uit twee hoofdcomponenten:
Start uw gratis cursus Software Ontwikkeling
Web ontwikkeling, programmeertalen, Software testen & anderen
- Heap Memory- dit is waar de toewijzing van geheugen gebeurt.
- Call Stack – dit is de plaats waar de stacks worden aangeroepen en de code wordt uitgevoerd.
NOTE:
JavaScript, is een single-threaded programmeertaal, wat betekent dat het een enkele Call Stack heeft en dus de mogelijkheid heeft om één ding tegelijk te doen. De Call Stack is in feite een datastructuur die bijhoudt op welk punt in het programma het programma daadwerkelijk wordt uitgevoerd. Deze aanroep-stapel is vergelijkbaar met andere stapels met de basisfunctionaliteit, zoals, als we in een functie stappen, zetten we die bovenaan de stapel. We moeten de top van de stack afhalen als we uit een functie willen terugkeren. Dit is de basisfunctionaliteit van elke stack. Nu we het toch over de engines hebben die de JavaScript functies aansturen, het is erg ingewikkeld, maar de basis dingen die elke engine in bredere zin uitvoert zijn als volgt:
- Als de browser het script leest dan is de engine ingebed in de browser zelf.
- Na het lezen van het script converteert (“compileert”) het het script naar de machinetaal.
- En dan draait de machinecode, behoorlijk snel.
Wat kan in-browser JavaScript doen?
- Het verandert de bestaande inhoud, wijzigt stijlen door nieuwe HTML aan de pagina’s toe te voegen.
- Verzorgt functies als muisklik, muisover, enz. die reageren op de acties van het gebruik.
- Verzoeken verzenden en ontvangen via het netwerk naar servers op afstand, zonder de complete pagina te laden als de gebruiker invoert. Een dergelijke technologie die zeer beroemd is, is AJAX.
- Met deze kan men de waarden van cookies instellen en krijgen, berichten aan de gebruikers verstrekken voor informatie, waarschuwingen en andere doeleinden.
- Ook kan men tijdelijke gegevens aan client side opslaan.
Wat KAN in-browser JavaScript niet doen?
De mogelijkheden van JavaScript zijn enigszins beperkt binnen de browser zijn beperkt ter wille van de veiligheid van de gebruiker. Het doel is te voorkomen dat een webpagina van een derde partij toegang krijgt tot privé-informatie of de gegevens van de gebruiker kan beschadigen. Enkele scenario’s voor dit soort beperkte toegang zijn:
- Standaard is JavaScript op een webpagina beperkt tot het lezen/schrijven van willekeurige bestanden op de harde schijf, het kopiëren ervan of het uitvoeren van programma’s. Het heeft zelfs geen directe toegang tot OS-systeemfuncties. Enkele moderne browsers staan het ook toe om met bestanden te werken, maar voor hetzelfde geldt dat de toegang beperkt is en alleen wordt verleend als de gebruiker bepaalde handelingen verricht, zoals het “droppen” van een bestand in een browservenster. Sommige manieren zijn ook beschikbaar voor interactie met camera/microfoon en andere apparaten, maar ook daarvoor is de uitdrukkelijke toestemming van de gebruiker nodig. Een pagina met JavaScript mag dus niet stiekem een webcamera inschakelen of de informatie naar de externe server of een derde partij sturen.
- Verschillende tabbladen of vensters zijn doorgaans niet van elkaars bestaan op de hoogte. Maar technisch gezien is dat heel goed mogelijk. Hetzelfde wordt “Same Origin Policy” genoemd. Om dit te laten werken, moeten beide instanties een speciale JavaScript-code bevatten die de gegevensuitwisseling tussen elkaar kan afhandelen. Maar de beperking is er weer voor de veiligheid van de gebruiker. Zo mag een webpagina van URL abc.com die een gebruiker heeft geopend, geen toegang krijgen tot een ander browsertabblad met URL xyz.com en stiekem informatie stelen.
- Met behulp van deze code kan men gemakkelijk via het net communiceren met een externe server of derde partij waar de huidige pagina vandaan kwam. Maar om veiligheidsredenen is de mogelijkheid om gegevens van andere sites of domeinen te ontvangen of te verzenden, uitgeschakeld. Maar hetzelfde is nog steeds mogelijk, waarvoor sommige JavaScript-werken een uitdrukkelijke toestemming van de kant op afstand vereisen. Een dergelijke beperking zal niet mogelijk zijn, indien JavaScript buiten de browser zou worden gebruikt in plaats van erbinnen, d.w.z. vanaf een server. Sommige moderne browsers maken het ook mogelijk om plugin’s of extensies te installeren, zodat JavaScript dat in de browser wordt gebruikt uitgebreide rechten krijgt.
Wat maakt JavaScript uniek?
- Zoals we allemaal weten, is het een objectgebaseerde scripttaal.
- Het is geschreven in C. Het is een geïnterpreteerde taal.
- Pure JavaScript is sneller in de toegang tot DOM.
- Met het gebruik van JavaScript werk, krijgt de gebruiker meer controle over de browser.
- Het kan ook omgaan met datum en timestamp.
- Het kan ook de browser en zelfs OS van de gebruiker detecteren.
- Het is lichtgewicht.
- Het is een scripttaal zoals reeds vermeld.
- Het is een op een interpreter gebaseerde scripttaal.
- Het is hoofdlettergevoelig, d.w.z. de syntaxis is hoofdlettergevoelig.
- Het is een object-gebaseerde taal, want het biedt voorgedefinieerde objecten zoals Java, maar het is niet java.
- Elk statement in JavaScript moet worden afgesloten met een puntkomma (;).
- Het belangrijkste dat JavaScript biedt is de mogelijkheid om nieuwe functies binnen scripts te maken. Men kan een functie in JavaScript declareren met behulp van de functie
- Volledige ondersteuning voor HTML en CSS.
- Het is zeer eenvoudig te gebruiken.
- Supports voor alle browsers.
Beperkingen
Naast de vele voordelen heeft JavaScript ook enkele beperkingen, die hieronder worden opgesomd:
- JavaScript bevindt zich aan de client-zijde en biedt geen mogelijkheid om bestanden op schijf te lezen of te schrijven.
- JavaScript kan niet worden gebruikt voor netwerktoepassingen omdat het dergelijke ondersteuning niet biedt.
- Het biedt geen enkele functionaliteit zoals multithreading of multiprocessor.
Conclusie
Dus met dat, zijn we allemaal te weten gekomen dat over sommige basisinformatie over de evoluties van JavaScript werkt, sommige van de beroemde motoren die JavaScript op webbrowsers draaien, wat zijn de voordelen van het houden van JavaScript in de browsers en wat er zou kunnen gebeuren als JavaScript zou kunnen worden geplaatst en draaien buiten de browsers. We zijn ook enkele kenmerken tegengekomen van JavaScript die het bruikbaar en uniek maken, samen met enkele beperkingen/nadelen ervan. Dus met dat, ik ben het sluiten van het onderwerp over hoe javascript werken, zijn er nog veel meer dingen te ontdekken die je zou kunnen verkennen van het web.
Aanbevolen artikelen
Dit was een gids voor JavaScript werken. Hier hebben we de basisconcepten besproken, de beperkingen en wat javascript uniek maakt ten opzichte van anderen. U kunt ook de volgende artikelen bekijken om meer te leren –
- Cheat Sheet JavaScript
- Toepassingen van JavaScript
- JavaScript vs JScript
- C# vs JavaScript