JS-zelfstudie

JS HOME JS Introductie JS Waarheen? JS-uitgang JS-verklaringen JS-syntaxis JS-opmerkingen JS-variabelen JS Let JS Const JS-operators JS Rekenen JS-opdracht JS-gegevenstypen JS-functies JS-objecten JS-evenementen JS-snaren JS String-methoden JS String zoeken JS String-sjablonen JS-nummers JS-nummermethoden JS-arrays JS-array-methoden JS-array sorteren JS-array-iteratie JS Array Const JS-datums JS-datumnotaties JS Datum Ophaalmethoden Methoden voor het instellen van JS-datum JS Math JS Willekeurig JS Booleans JS-vergelijkingen JS-voorwaarden JS-schakelaar JS Loop For JS-lus voor binnen JS Loop For Of JS-lus terwijl JS Break JS-iteraties JS-sets JS-kaarten JS Typeof JS Type conversie JS Bitwise JS RegExp JS-fouten JS-bereik JS Hijsen JS strikte modus JS dit trefwoord JS-pijlfunctie JS-lessen JS JSON JS-foutopsporing JS-stijlgids JS-best practices JS-fouten JS-prestaties JS Gereserveerde Woorden

JS-versies

JS-versies JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge JS-geschiedenis

JS-objecten

Objectdefinities Objecteigenschappen Objectmethoden Objectweergave Objectaccessoires Objectconstructeurs Objectprototypes Object-Iterables Objectsets Objectkaarten Objectreferentie

JS-functies

Functiedefinities Functieparameters: Functie-aanroep Functie-oproep: Functie Toepassen Functie Sluitingen

JS-lessen

Klas Intro Klasse Overerving Klasse Statisch

JS Asynchrone

JS-callbacks JS asynchroon JS belooft JS Async/Wachten

JS HTML DOM

DOM Intro DOM-methoden DOM-document DOM-elementen DOM HTML DOM-formulieren DOM-CSS DOM-animaties DOM-evenementen DOM-gebeurtenisluisteraar DOM-navigatie DOM-knooppunten DOM-collecties DOM-knooppuntlijsten

JS-browserstuklijst

JS-venster JS-scherm JS-locatie JS-geschiedenis JS-navigator JS pop-upwaarschuwing JS-timing JS-koekjes

JS Web API's

Introductie web-API Web Forms API Webgeschiedenis-API Webopslag-API Web Worker-API Web Fetch-API Webgeolocatie-API

JS AJAX

Ajax-intro AJAX XMLHttp Ajax-verzoek Ajax-reactie AJAX XML-bestand AJAX PHP Ajax ASP AJAX-database AJAX-toepassingen Ajax-voorbeelden

JS JSON

JSON-intro JSON-syntaxis JSON versus XML JSON-gegevenstypen JSON ontleden JSON Stringify JSON-objecten JSON-arrays JSON-server JSON PHP JSON HTML JSON JSONP

JS versus jQuery

jQuery-kiezers jQuery HTML jQuery CSS jQuery DOM

JS-graphics

JS-graphics JS Canvas JS Plotly JS Chart.js JS Google-kaart JS D3.js

JS-voorbeelden

JS-voorbeelden JS HTML DOM JS HTML-invoer JS HTML-objecten JS HTML-evenementen JS-browser JS-editor JS-oefeningen JS-quiz JS-certificaat

JS-referenties

JavaScript-objecten HTML DOM-objecten


JavaScript-geschiedenis


JavaScript / ECMAScript

JavaScript is in 1995 uitgevonden door Brendan Eich .

Het is ontwikkeld voor Netscape 2 en werd in 1997 de ECMA-262- standaard.

Nadat Netscape JavaScript had overgedragen aan ECMA, ging de Mozilla Foundation door met het ontwikkelen van JavaScript voor de Firefox-browser. De nieuwste versie van Mozilla was 1.8.5. (Identiek aan ES5).

Internet Explorer (IE4) was de eerste browser die ECMA-262 Edition 1 (ES1) ondersteunde.

Jaar ECMABrowser
1995   JavaScript is uitgevonden door Brendan Eich
1996   Netscape 2 is uitgebracht met JavaScript 1.0
1997   JavaScript werd een ECMA-standaard (ECMA-262)
1997 ES1 ECMAScript 1 is uitgebracht
1997 ES1 IE 4 was de eerste browser die ES1 ondersteunde
1998 ES2 ECMAScript 2 is uitgebracht
1998   Netscape 42 is uitgebracht met JavaScript 1.3
1999 ES2 IE 5 was de eerste browser die ES2 ondersteunde
1999 ES3 ECMAScript 3 is uitgebracht
2000 ES3 IE 5.5 was de eerste browser die ES3 ondersteunde
2000   Netscape 62 is uitgebracht met JavaScript 1.5
2000   Firefox 1 is uitgebracht met JavaScript 1.5
2008 ES4 ECMAScript 4 is verlaten
2009 ES5 ECMAScript 5 is uitgebracht
2011 ES5 IE 9 was de eerste browser die ES5 ondersteunde *
2011 ES5 Firefox 4 is uitgebracht met JavaScript 1.8.5
2012 ES5 Volledige ondersteuning voor ES5 in Safari 6
2012 ES5 Volledige ondersteuning voor ES5 in IE 10
2012 ES5 Volledige ondersteuning voor ES5 in Chrome 23
2013 ES5 Volledige ondersteuning voor ES5 in Firefox 21
2013 ES5 Volledige ondersteuning voor ES5 in Opera 15
2014 ES5 Volledige ondersteuning voor ES5 in alle browsers
2015 ES6 ECMAScript 6 is uitgebracht
2016 ES6 Volledige ondersteuning voor ES6 in Chrome 51
2016 ES6 Volledige ondersteuning voor ES6 in Opera 38
2016 ES6 Volledige ondersteuning voor ES6 in Edge 14
2016 ES6 Volledige ondersteuning voor ES6 in Safari 10
2015 ES6 Volledige ondersteuning voor ES6 in Firefox 52
2018 ES6 Volledige ondersteuning voor ES6 in alle browsers **

Opmerking

* Internet Explorer 9 ondersteunde ES5 "gebruik strikt" niet.

** Internet Explorer 11 ondersteunt ES6 niet.


De technische commissie van de ECMA 39

In 1996 brachten Netscape en Brendan Eich JavaScript naar de internationale normorganisatie ECMA, en er werd een technische commissie (TC39) opgericht om de taal te ontwikkelen.

ECMA-262 Editie 1 werd uitgebracht in juni 1997.


Van ES4 naar ES6

Toen het TC39-comité in 2008 in Oslo bij elkaar kwam om overeenstemming te bereiken over ECMAScript 4, waren ze verdeeld in 2 zeer verschillende kampen:

De ECMAScript 3.1 Camp :
Microsoft en Yahoo die een incrementele upgrade van ES3 wilden.

De ECMAScript 4 Camp :
Adobe, Mozilla, Opera en Google die een enorme ES4-upgrade wilden.

13 augustus 2008, Brendan Eich schreef een e-mail :

Het is geen geheim dat de instantie voor JavaScript-normen, Ecma's Technical Committee 39, al meer dan een jaar is opgesplitst, waarbij sommige leden de voorkeur geven aan ES4, een belangrijke vierde editie van ECMA-262, en anderen pleiten voor ES3.1 op basis van de bestaande ECMA-262 Editie 3 (ES3) specificatie. Nu ben ik blij te kunnen melden dat de splitsing voorbij is.

De oplossing was om samen te werken:

  • ECMAScript 4 is hernoemd naar ES5
  • ES5 zou een incrementele upgrade van ECMAScript 3 moeten zijn.
  • Functies van ECMAScript 4 zouden in latere versies moeten worden opgepikt.
  • TC39 zou een nieuwe grote release moeten ontwikkelen, groter in omvang dan ES5.

De geplande nieuwe release (ES6) kreeg de codenaam "Harmony" (vanwege de splitsing die het creëerde?).

ES5 was een groot succes. Het werd uitgebracht in 2009 en alle belangrijke browsers (inclusief Internet Explorer) waren in juli 2013 volledig compatibel:

Chrome 23 IE10 / Edge Firefox 21 Safari 6 Opera 15
Nov 2012 Sep 2012 May 2013 Jul 2012 Jul 2013

Ook ES6 was een groot succes. Het werd uitgebracht in 2015 en alle belangrijke browsers waren in maart 2017 volledig compatibel:

Chrome 51 Edge 14 Firefox 52 Safari 10 Opera 38
May 2016 Aug 2016 Mar 2017 Sep 2016 Jun 2016