ECMA Script (ES) Versions

EcmaScript2009 – ES5

  • map, filter, reduce
  • forEach()
  • JSON.parse(), JSON.stringify()

EcmaScript2015 – ES6

Babel: Learn ES2015

  • let and const
  • class
  • Arrow functions (param) => { console.log(param); }
  • Template Strings `Template ${"string"}`
  • Promises
  • Async + Await
  • Destructuring let [a, b] = [1,2]
  • Default parameter values
  • Array.find()
  • Array.findIndex()
  • Exponentiation (**) (ES 2016)

ES6 Modules

  • You can only use import and export statements inside modules, not regular scripts.
<script type="module" src="js/main.js"></script>
export function Rater(element) {
  // ...
}
import { Rater } from './rater.js';

Export several

// ...

export { name, draw, reportArea, reportPerimeter };
import * as Module from './modules/module.js';

Default exports

function randomSquare() {
  // ...
}

export default randomSquare;
import randomSquare from './modules/square.js';

Note: without curly braces, since there is only one default export allowed per module.

Dynamics module import

import('./modules/myModule.js')
  .then((module) => {
    // Do something with the module.
  });