So I've only recently started to dive head first into web development. One thing I gathered very quickly was that ES5 = old, and ES6 = shiny and new. I figured ES6 was the latest and greatest ES had to offer. But I just found out that ES6 is 3 standards behind, and that some of the features I've been using and loving aren't even a part of it—they came in later specifications. So why does everything I read make it seem like there's just ES5 and ES6?
问题:
回答1:
ES6 (later rebranded as ES2015) simply was the first release after the language design process was ramped up. After vendors agreed to improve JavaScript and implement new features in their engines (which were possible before only using transpilers like CoffeeScript), lots of feature proposals were made and discussed under the term ES-harmony, with ES6 - the next revision of the standard that was expected to contain all those new features - being the big buzzword.
When ES6 finally came, it was a major release that included a plethora of new features, but not all of the previously discussed ones. The standards committee kept up their work, and changed to a new yearly release cycle (ES7=ES2016, ES8=ES2017, ES9=ES2018, …). Lots of fancy things were expected to be included in ES7 (the new buzzword, along with ES6+), but ultimately failed to be finished on time (see Is ES7 only composed of two features?). The TC39 committee then codified a process for adopting proposals which is still followed, and things get included in the specification releases (referred to as ES-next) when they're done. The importance of the standard revisions declined, features are denoted by the name of the proposal and not by the year they are expected to get released.