It is split up in two parts
Part I – Short history and overview
Part II – Examples
ES 2015 went under the name ES 6 for a while, but they have moved away from an incremental versioning and over to naming based on the year of release. That implies a yearly cadence of major releases, which is a great improvement over previous release cadence. One of the benefits of a shorter cadence is a shorter feature list for browser vendors to implement.
ES 1 First version was released in 1997.
ES 2 The next version came out already the year after, but only with some minor improvements.
ES 2015 Now we get the biggest update ever. We can see a lot of features planned for ES 4, now appearing in ES 2015.
Some of the priorities for ES 2015 are performance and scalability. They are also making the language better suited for future improvements. All this while still maintaining backward compability.
While the new features are mostly implemented in the language, browsers are lagging behind. So before you go a head and make the switch to ES 2015, you need to make sure that the new features you want to implement are supported by the browsers that your users use. You can check out CanIUse to see if a specific feature is implemented or check out Compability table for charts grouped by browser. There are still a few features missing, but fear not, there are ways for you to start already today. You should always use a Polyfill and with ES 2015, Core.js is a the best option. It let’s you write ES 2015 code, and tries to fill in the missing features. But unfortunately not all features are covered. To fill the remaining gaps, you should use a transpiler that can take your ES 2015 code and turn it into ES 5 code that are supported by the browsers. A transpiler is quite similar to a compiler, the only difference is that while a compiler compiles down to another level of abstraction, a transpiler converts your code into to another language at the same level of abstraction.
I recommend that you pre-transpile before going to production (for performance). This can be done as a part of a gulp or grunt task.
Another transpiler is TypeScript, which in addition to ES 2015 features provides type definitions. It can transpile down to ES5 or even ES3 if desired.