care about IE8) • Most of the features we take for granted as being “JavaScript” today var input = [1, 2, 3], output = []; for (var i = 0, len = input.length; i < len; i++) { output.push(input[i] * 2); } console.log(output); // [2, 4, 6]
Introduced a ton of new features to help with large, complex projects ‣ Classes ‣ Modules ‣ Generators and Iterators ‣ Destructuring ‣ (…starting to sound familiar?) ‣ Algebraic Data Types ‣ Optional Static Typing
on standardizing what was already out there and avoiding common pitfalls. var input = [1, 2, 3]; var output = input.map(function(value) { return value * 2; }); console.log(output); // [2, 4, 6] ‣ Getters and setters ‣ Reflection (property descriptors) ‣ New library functions ‣ Function#bind ‣ Array#map/filter/reduce ‣ JSON.parse/stringify ‣ Strict Mode
edition of ECMA-262 ‣ Features move through a 4-stage process to make it into the spec, and must be accepted by TC39 at each stage to move forward. (Technical Committee) (The ES Specification)
time to examining the problem space” https://tc39.github.io/process-document ‣ Stage 2 – Draft. TC39 “expects the feature to be developed and eventually included in the standard” ‣ Stage 3 – Candidate. “[No] further work is possible without implementation experience, significant usage and external feedback” ‣ Stage 4 – Finished. “The addition will be included in the soonest practical standard revision”
a module's named // exports as a single named object import * as v from 'mod'; export v; // Expose another module's default // export with a given name import v from 'mod'; export v; // Expose all of a module's named // exports as a single named object import * as v from 'mod'; export v; // Expose another module's default // export with a given name import v from 'mod'; export v; https://github.com/leebyron/ecmascript-more-export-from
// exports as a single named object import * as v from 'mod'; export v; // Expose another module's default // export with a given name import v from 'mod'; export v; // Expose all of a module's named // exports as a single named object export * as v from 'mod'; // Expose another module's default // export with a given name export v from 'mod'; https://github.com/leebyron/ecmascript-more-export-from Export Extensions 1