Additionally, ES2018 drops the syntax restriction of escape sequences from tagged templates. These new changes are explained in the subsections that follow. #The Rest/Spread Properties One of the most interesting features added to ES2015 was the spread operator. ES6 Overview in 350 Bullet Points. Apologies about that long table of contents, and here we go.
ES6 – also known as Harmony, es-next, ES2015 – is the latest finalized specification of the language The ES6 specification was finalized in June 2015, (hence ES2015) Future versions of the specification will follow the ES[YYYY] pattern, e.g ES2016 for ES7 Yearly release schedule, features that don’t make the cut take the next train Since ES6 pre-dates that decision, most of us still call it ES6 Starting with ES2016 (ES7), we should start using the ES[YYYY] pattern to refer to newer versions Top reason for naming scheme is to pressure browser vendors into quickly implementing newest features (back to table of contents) A new primitive type in ES6 You can create your own symbols using var symbol = Symbol() You can add a description for debugging purposes, like Symbol() Symbols are immutable and unique.
Representing these concepts directly in code comes in two parts: data to represent the state, and functions to represent the behavior. ES6 classes give us a convenient syntax for defining the state and behavior of objects that will represent our concepts. ES6 classes make our code safer by guaranteeing that an initialization function will be called, and they make it easier to define a fixed set of functions that operate on that data and maintain valid state.