In dit artikel gaan we de impact van JavaScript op de hedendaagse samenleving onderzoeken. JavaScript is een onderwerp dat voortdurend in de belangstelling staat en de invloed ervan strekt zich uit tot verschillende gebieden, van de populaire cultuur tot de politiek en de economie. Door de jaren heen heeft JavaScript aanleiding gegeven tot debatten en controverses, waardoor tegenstrijdige meningen en uiteenlopende standpunten zijn voortgekomen. In deze zin is het van cruciaal belang om de rol die JavaScript momenteel speelt, evenals de mogelijke evolutie ervan in de toekomst, kritisch en objectief te analyseren. Door middel van gedetailleerde analyse hopen we een alomvattend en verrijkend beeld te bieden van JavaScript, waardoor onze lezers de reikwijdte en betekenis ervan vandaag de dag beter kunnen begrijpen.
JavaScript | ||||
---|---|---|---|---|
Paradigma | multi-paradigma, functioneel, objectgeoriënteerd (prototype-gebaseerd) | |||
Verschenen | 4 december 1995[1] | |||
Ontworpen door | Brendan Eich | |||
Ontwikkeld door | Netscape Communications Corporation, Mozilla Foundation | |||
Huidige versie | ECMAScript 2024[2] juni 2024 | |||
Typesysteem | dynamisch, zwak, duck-typing | |||
Implementaties | SpiderMonkey, Rhino | |||
Dialecten | ECMAScript, JScript | |||
Beïnvloed door | Self, C, Scheme | |||
Invloed op | ActionScript, JScript, JScript .NET | |||
Bestandsextensies | js, mjs | |||
Website | Mozilla | |||
|
JavaScript is een veelgebruikte scripttaal om webpagina's interactief te maken en webapplicaties te ontwikkelen. Naast HTML en CSS is JavaScript een van de kerntechnologieën van het wereldwijde web.
De eerste versie van JavaScript werd in 1995 ontwikkeld door Brendan Eich van Netscape Communications Corporation voor gebruik in Netscape Navigator. Aanvankelijk was de naam Mocha en vervolgens LiveScript. De taal werd hernoemd tot JavaScript in de tijd dat in de Netscape-browser ook ondersteuning voor Java-applets werd ingebouwd.
Met de introductie van JavaScript ontstonden de eerste mogelijkheden om webpagina's interactief te maken. Dit werd later Dynamic HTML genoemd.
Netscape heeft in een poging om JavaScript als een officiële norm erkend te krijgen en er toch zelf voldoende zeggingskracht over te behouden, de taal laten normeren door de European Computer Manufacturers Association (ECMA), waarbij de naam om redenen betreffende het merkrecht is gewijzigd in ECMAScript. De relevante ISO-standaard is ISO 16262. De huidige versie van JavaScript is versie ECMAScript 2018 (juni 2018).
Microsoft heeft een eigen implementatie van JavaScript ontwikkeld onder de naam JScript en Adobe heeft een eigen versie genaamd ActionScript, die gebruikt wordt in Flash.
De meest opvallende kenmerken van JavaScript zijn:
JavaScript wordt nogal eens verward met de programmeertaal Java, omdat het er qua naam en qua syntaxis sterk op lijkt. Die gelijkenis is oppervlakkig; in wezen zijn het heel verschillende talen.
Toen JavaScript werd ontwikkeld was Netscape de webbrowser die door bijna iedereen werd gebruikt. Het was nog niet mogelijk om in een webpagina code op te nemen die door de browser wordt uitgevoerd. Dat zogenoemde client-side scripting biedt enorm veel extra mogelijkheden, dus er was veel behoefte aan. Wel ondersteunde Netscape het sinds kort om in een webpagina kleine programmaatjes, zogeheten applets, in te bedden, geschreven in Java. Dat heeft echter allerlei beperkingen die een scripttaal die direct door de browser wordt geïnterpreteerd niet heeft. Netscape besloot dus zo'n scripttaal te maken en in Netscape te ondersteunen. De expliciete opdracht was om de syntaxis op Java te laten lijken; de naam JavaScript suggereert zelfs dat er sprake is van een versie van Java, maar dan als scripttaal uitgevoerd in de browser. Dat is misleidend, want JavaScript lijkt inhoudelijk niet op Java, maar op functionele programmeertalen zoals Scheme en Self: het ondersteunt bijvoorbeeld prototype-gebaseerde overerving en niet, zoals Java en de meeste objectgeoriënteerde talen, klasse-gebaseerde overerving, en het ondersteunde van meet af aan hogere-orde-functies en closures.
JavaScript wordt vooral gebruikt in toepassingen op het wereldwijde web.
In deze toepassing wordt JavaScript vooral gebruikt in interactieve webpagina's.
De JavaScript wordt door middel van speciale voorzieningen in HTML (met name het script-element) in de pagina opgenomen, als onderdeel van de pagina geladen door de webbrowser, en vervolgens hierin uitgevoerd.
De code kan de pagina op allerlei manieren aanpassen en zelfs, met behulp van AJAX, nieuwe pagina-inhoud of scriptcode laden en weergeven.
Net als bij andere scripttalen is er een interpreter nodig om de geprogrammeerde opdrachten uit te voeren. De meeste moderne browsers beschikken over een eigen interpreter voor JavaScript. Het besturingssysteem Windows heeft een ingebouwde interpreter, het bestand jscript.dll.
Ook enkele e-mailprogramma's ondersteunen JavaScript in HTML-berichten.
JavaScript kan ook gebruikt worden voor server-side scripting. De webservers van Netscape waren de eerste die deze ondersteuning boden. Maar ook de webserver van Microsoft, IIS, ondersteunt JavaScript in Active Server Pages en ASP.NET. Zo halverwege de jaren 2010 maakte Node.js een grote opgang. Voor Node.js zijn verschillende webservers ontwikkeld, waaronder bijvoorbeeld express.
Een JavaScript-framework is een softwarebibliotheek die een aantal JavaScript-functies en widgets bevat voor het ontwikkelen van webapplicaties, waarbij vaak de nadruk ligt op AJAX.
Het Internet Mediatype of MIME-type voor JavaScript-code is application/javascript
, hoewel het niet-officiële text/javascript
vaker wordt gebruikt.
Om JavaScript op te nemen in een webpagina die voldoet aan de standaard voor HTML 4.01, moet het type-attribuut expliciet worden opgegeven in de openingstag:
<script type="text/javascript">
// code
</script>
In XHTML-documenten houden speciale karakters, zoals "<
" (kleiner dan), hun betekenis ook binnen script
-elementen (in HTML vervalt die speciale betekenis onder bepaalde voorwaarden). Een script dat zulke karakters bevat, moet daarom als CDATA-sectie gemarkeerd worden. De CDATA-markering zelf wordt dan vaak met "//
" in commentaar verstopt om te voorkomen dat er problemen ontstaan met browsers die geen CDATA-secties herkennen.
<script type="text/javascript">
<!--//--><![CDATA[//><!--
console.log("Hello World!");
//--><!]]>
</script>
In HTML5 is bepaald dat JavaScript de standaardtaal is en is het lang-attribuut optioneel, net zoals de CDATA-secties:
<script>
alert('Hallo, wereld!');
</script>
Versie | Jaar | Opmerkingen | JScript-versie |
---|---|---|---|
1.0 | 1996 | De eerste versie, aanwezig in Netscape Navigator 2. | 1.0 (IE 3) |
1.1 | 1996 | Groot aantal bugs uit versie 1.0 opgelost. Introductie Array-object. Ondersteund door Netscape 3. | 2.0 (IE 3) |
1.2 | 1997 | Introductie switch-statement, reguliere expressies. Ondersteund door Netscape 4. | |
1.3 | 1998 | Compatibel met ECMAscript versie 1. Ondersteund door Netscape 4.5. | 3.0 (IE 4) |
1.4 | 1998[3] | Alleen ondersteund door Netscape-servers. | |
1.5 | 2000 | Exception handling. Compatibel met ECMAscript versie 3. Ondersteund door Mozilla en Netscape 6. | 5.5 t/m 5.8 (IE 5.5 t/m 8.0) |
1.6 | 2005 | Uitbreiding van de ondersteuning voor arrays. | |
1.7 | 2006 | Generators, iterators en let-expressions. | |
1.8 | 2008 | generator expressions[4] en expression closures[5] (dat wil zeggen lambda-expressies). | |
1.9 | 2009[6] | ||
2.1 | 2009 |