![](https://csdnimg.cn/release/download_crawler_static/10007970/bg10.jpg)
CHAPTER 1 ■ GETTING STARTED WITH ES6
2
do collaborative design work, usually one or two committee members are assigned as
champions responsible for maintaining a proposal and to do design work and report back
to the committee.
For a proposal to become a standard, it has to go through multiple stages. The initial
feature sketch of the proposal, which is also referred to as a “Strawman proposal,” is the
first stage discussed by the committee and if it agrees that it is important, it is considered
an official proposal. The proposed feature then needs to be implemented at least by two
major JavaScript engines to get feedback from the community and evolve the proposal
further. Once the proposal passes through these stages and incorporates feedback, TC39
approves it and will include it in the new edition of the ECMAScript standard.
History of ECMA, ECMAScript, and JavaScript
For someone unaware of the history of JavaScript, it can get pretty confusing quickly with
so many different names like JavaScript, ECMAScript, different version numbers, and
other popular offshoots like ActionScript, JScript, and TypeScript, which are all different
forms of JavaScript.
JavaScript was originally developed by Brendan Eich as a scripting language for the
web for use in the Netscape browsers. The name itself was chosen for marketing reasons
due to the rising popularity of Java around the time, even though it had nothing to do with
Java. In an attempt to standardize the language and the specification, it was submitted
to ECMA International, a body for standardization of information and communication
technology and consumer electronics. Eventually, the language standardized in ECMA-
262 was just called ECMAScript or ES in abbreviated form, since JavaScript was a
name trademarked by Sun and now belongs to Oracle. None the less, the language is
still commonly referred to as JavaScript by everyone. There were many variations in
implementations with ECMAScript as the backbone, like a slightly different adoption for
the Internet Explorer by Microsoft called JScript. ActionScript is another example of a
derived language developed by Adobe.
The initial versions ES1 and ES2 were released in 1997 and 1998, but in 1999, the ES3
release was a major upgrade with new features like regular expressions, improved string
handling, more control statements, better error handling, and try catch exception handling
among many other enhancements that we commonly use in JavaScript today. It had a
widespread base implementation in various forms across major browsers and engines.
After the release of ES3, work on ES4 was well under way with many radical
changes and a massive scope. Updated features included new syntax, modules, classes,
classical inheritance, private object members, optional type annotations, and more. The
proposed changes led to many differences, both technical and political, among various
stakeholders in the community, resulting in it being put on hold in 2003. Parts of the
proposed features made their way into implementations like ActionScript and Jscript.
NET. After receiving feedback from these implementations, TC39 decided to resume work
on ES4 in 2005, but by this time there was a big split in the community and two major
groups had formed with differences on the way forward.
The alternate version championed by companies like Microsoft and Yahoo with fewer
feature additions and improvements to the existing spec was referred to as ECMAScript 3.1.
Because there was no consensus between the groups and the future of JavaScript was
questionable, there was no major progress for a few years. Finally, in 2008 TC39 came
to a consensus between ES4 and ES3.1. ECMAScript 3.1 was eventually standardized as