1. Arrow functions

    Function shorthand using `=>` syntax and lexical `this` binding.

  2. const

    Declares a constant with block level scope

  3. ECMAScript 2015 (ES6)

    Support for the ECMAScript 2015 specification. Features include Promises, Modules, Classes, Template Literals, Arrow Functions, Let and Const, Default Parameters, Generators, Destructuring Assignment, Rest & Spread, Map/Set & WeakMap/WeakSet and many more.

  4. ES6 classes

    ES6 classes are syntactical sugar to provide a much simpler and clearer syntax to create objects and deal with inheritance.

  5. ES6 Generators

    ES6 Generators are special functions that can be used to control the iteration behavior of a loop. Generators are defined using a `function*` declaration.

  6. JavaScript modules via script tag

    Loading JavaScript module scripts (aka ES6 modules) using `<script type="module">` Includes support for the `nomodule` attribute.

  7. JavaScript modules: dynamic import()

    Loading JavaScript modules dynamically using the import() syntax

  8. ES6 Number

    Extensions to the `Number` built-in object in ES6, including constant properties `EPSILON`, `MIN_SAFE_INTEGER`, and `MAX_SAFE_INTEGER`, and methods ` isFinite`, `isInteger`, `isSafeInteger`, and `isNaN`.

  9. String.prototype.includes

    The includes() method determines whether one string may be found within another string, returning true or false as appropriate.

  10. let

    Declares a variable with block level scope

  11. Proxy object

    The Proxy object allows custom behavior to be defined for fundamental operations. Useful for logging, profiling, object visualization, etc.

  12. Rest parameters

    Allows representation of an indefinite number of arguments as an array.

  13. ES6 Template Literals (Template Strings)

    Template literals are string literals allowing embedded expressions using backtick characters (`). You can use multi-line strings and string interpolation features with them. Formerly known as template strings.

  14. Typed Arrays

    JavaScript typed arrays provide a mechanism for accessing raw binary data much more efficiently. Includes: `Int8Array`, `Uint8Array`, `Uint8ClampedArray`, `Int16Array`, `Uint16Array`, `Int32Array`, `Uint32Array`, `Float32Array` & `Float64Array`

  15. ecmascript 4