This document discusses the evolution of JavaScript and the ECMAScript standard over time. It covers new features introduced in ES2015 (ES6) like arrow functions, classes, modules, and new built-in objects. It also mentions upcoming features in ES2017 like async functions and describes the process for proposing and standardizing new JavaScript features.
7. ES 2015
“ES6”
ES 5.1
(2011)
ES 5
(2009)
ES 3
(1999)
ES 2
(1998)
ES 1
(1997)
The ECMAScript Standard Timeline
JS Performance
Revolution
“ES4”
E4X
“ES4”
“Web 2.0” / AJAX
http://wirfs-brock.com/allen/talks/forwardjs2016.pdf
17. Exponentiation Operator
• Available in Chrome, Edge, WebKit
// same as: 2 * 2 * 2
let cubed = 2 ** 3;
let a = 2;
// same as: a = a * a * a;
a **= 3;
19. …
ES
2017
ES
2016
ES
2015
ES 5.1
(2011)
ES 5
(2009)
ES 3
(1999)
ES 2
(1998)
ES 1
(1997)
The ECMAScript Standard Timeline
Annual June
Incremental Updates“ES4”
E4X
“ES4”
Release trains are now leaving the station
http://wirfs-brock.com/allen/talks/forwardjs2016.pdf
25. ES2017 (Current Stage 4 Proposals)
• Async Functions
• Object.values/Object.entries
• String padding
• Object.getOwnPropertyDescriptors
• Trailing commas in function parameter lists and calls
• and more…
26. Async Functions
• Available in Edge, Chrome with flag
async function chainAnimationsAsync(elem, animations) {
let ret = null;
try {
for(const anim of animations) {
ret = await anim(elem);
}
} catch(e) { /* ignore and keep going */ }
return ret;
}
33. • Making a Standard: Inside the ECMAScript
Sausage Factory by Allen Wirfs-Brock
http://wirfs-brock.com/allen/talks/forwardjs2016.pdf
• ECMAScript as a Living Standard by azu
http://azu.github.io/slide/2016/node-es/ecmascript.html
• You Don't Know ES Modules by teppeis
https://www.slideshare.net/teppeis/you-dont-know-es-modules