JavaScript
JavaScript | ||||
---|---|---|---|---|
![]() | ||||
Paradigma | multi-paradigma, functioneel, objectgeoriënteerd (prototype-gebaseerd) | |||
Verschenen | 4 december 1995 [1] | |||
Ontwerper | Brendan Eich | |||
Ontwikkelaar | Netscape Communications Corporation, Mozilla Foundation | |||
Huidige versie | ECMAScript 2018[2] | |||
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 | |||
Website | Mozilla | |||
![]() | ||||
|
JavaScript is een veelgebruikte scripttaal om webpagina's interactief te maken en webapplicaties te ontwikkelen. Het script wordt door middel van HTML overgebracht in de webbrowser en wordt hierin uitgevoerd.
De syntaxis van JavaScript vertoont overeenkomsten met de programmeertaal Java, maar dit is voornamelijk het gevolg van de gemeenschappelijke afkomst van de programmeertaal C. Omdat beide talen het meest zichtbaar zijn op en rond de browser, maar vooral door de naamgeving, worden ze vaak met elkaar verward. De gelijkenis houdt daar echter op, want JavaScript heeft inhoudelijk meer gemeen met functionele programmeertalen, het biedt prototype-gebaseerde overerving en niet, zoals Java en de meeste objectgeoriënteerde talen, klasse-gebaseerde overerving.
Geschiedenis
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. code fejjeu
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 (Internationale Organisatie voor Standaardisatie). 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.
Het gebruik van JavaScript kent weer een opleving als onderdeel van AJAX-toepassingen.
Kenmerken
De meest opvallende kenmerken van JavaScript zijn:
- Prototype-gebaseerde overerving
- Dit in tegenstelling tot de meeste gangbare objectgeoriënteerde programmeertalen, die klasse-gebaseerde overerving gebruiken.
- Functioneel programmeren
- JavaScript is sterk beïnvloed door functionele programmeertalen zoals Self en Scheme. Zo zijn functies in JavaScript first-class, wat wil zeggen dat functies gewone objecten zijn. Verder ondersteunt JavaScript geneste functies en closures.
- Reguliere expressies
- JavaScript heeft een ingebouwde ondersteuning met speciale syntaxis voor reguliere expressies. Deze is vergelijkbaar en tot op zekere hoogte compatibel met die van Perl.
- Objecten zijn arrays
- Objecten in JavaScript zijn te benaderen als associatieve arrays.
Gebruik van JavaScript
JavaScript wordt vooral gebruikt in toepassingen op het wereldwijde web.
Client-side

In deze toepassing wordt JavaScript vooral gebruikt in interactieve webpagina's. 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.
Server-side
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. De laatste jaren maakt node.js een grote opgang.
JavaScript-toolkits
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.
Omgeving
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[//><!--
// code
//--><!]]>
</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>
Versies
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 |
Externe links
- JavaScript-documentatie: Learn JS op het Mozilla Developer Center,
- (en) over de geschiedenis van JavaScript: JavaScript: How Did We Get Here? door Steve Champeon, op het O'Reilly-netwerk, 4 mei 2001.
- (en) over de toekomst van JavaScript: JavaScript 1, 2, and in between, door Brendan Eich, op weblogs.mozillazine.org, 13 juni 2005.
- ↑ Pers bericht aankondiging JavaScript, "Netscape and Sun announce JavaScript", PR Newswire, December 4, 1995
- ↑ Standard ECMA-262. Ecma International (3 juli 2017).
- ↑ https://web.archive.org/web/20060112005349/http://devedge-temp.mozilla.org/library/manuals/2000/javascript/1.4/reference/frames.html
- ↑ https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Iterators_and_Generators#Generator_expressions
- ↑ https://developer.mozilla.org/en/New_in_JavaScript_1.8#Expression_closures
- ↑ (en) JavaScript 1.5 to 2.0: Firefox 3.1 bevat JavaScript 1.9. Firefox 3.1 werd later hernoemd naar Firefox 3.5, uitgebracht als stabiele versie op 1 juli 2009.
- JavaScript; The Definitive Guide, 4e ed., David Flanagan, 2002, O'Reilly, ISBN 0-596-00048-0