Officially it's ECMAScript 2015 Language
Officially, the name is "ECMAScript 2015 Language" and it's the 6th Edition of the ECMA-262 standard. The specification mentions neither ES6 or ES2015, though they are handy abbreviations. Before deciding which name to use, let's inspect the release process a little closer.
Including the year in the specification name signifies a change to the release process. Previous versions have been gigantic and have been released many years apart. ES6 is the last big release, and future versions will be smaller, and they will be released more frequently.
So far, the trend has been to release a new version each year. In 2016, a year after the previous release, the 7th edition of ECMAScript was released. It contained two new language features.
New features in JS engines before in ECMAScript standard
A new language feature goes through many phases before being included in the specification. It grows from an idea into a commented proposal and into accepted language feature. Periodically, the committee responsible for the ECMAScript specification collects accepted language features and writes an updated edition of the ECMAScript specification.
In the last stage before feature being accepted into the language, the committee requires that two shipping VMs exist that implement the feature. This means that Chrome and Firefox can implement a language feature before it's included in an official ECMAScript specification.
The implementation first approach means that you will be checking if a JS engine supports a specific language feature instead of supporting a specific ECMAScript version. The situation is similar to CSS and HTML today. Instead of checking for CSS version, you check if @font-face works in your choice of browsers.
What name to use?
You should talk about
- use ES6 to refer to "ECMAScript 2015 Language" (arrow functions, template strings, Promises), it's shorter than ES2015 and both are unofficial, ES6 was the last big release and the name is in line with the previous big release ES5, things change after that
- after ES6, use names of language features, such as "Array.prorotype.includes" and "Async Functions", the specification is only updated after working implementations exist in JS engines, check TC39 Finished Proposals for a list of features to be included in the next specification
- for historically referring one year's updates to the ECMAScript specification use ES[year]