ECMAScript - A brief history

0

Harsh Anand

December 15, 2021

ECMAScript

  • JavaScript was invented by Bredan Eich in 1995, with a trademark of Oracle (which led to Microsoft calling its JavaScript dialect "JScript").
  • Thus, when it came to standardization, a different name had to be used. ECMAScript was chosen, because the corresponding standard is hosted by Ecma International.
  • The term ECMAScript is also frequently used to denote language versions (such as ECMAScript 5).
  • ECMAScript versions have been abbreviated to ES1, ES2, ES3, ES5, and ES6.
  • Since 2016, new versions are named by year (ECMAScript 2016 / 2017 / 2018).

ECMA-262

The ECMA International (a standard organization) has created the ECMA-262 standard which is the official specificarion of the ECMAScript language.
Read more about ECMA-262 here

ECMA's Technical Committee 39 (TC39)

It is the group of people (Brendan Eich and others) who develop the ECMA-262 standard.
Read more about TC39 here

Different stages before ES updates

Different stages before ES updates

Versions of ECMAScript

ES1 - ECMAScript 1

  • Released year

    • 1997
  • Description

    • This was the first edition of ECMAScript

ES2 - ECMAScript 2

  • Released year

    • 1998
  • Description

    • Editorial Changes were done

ES3 - ECMAScript 3

  • Released year

    • December 1999
  • Description

    • This is the version of ECMAScript that most browsers support today. It introduced many features that have become an inherent part of the language.
  • Features Added

    • Regular expressions
    • Better string handling
    • New control statements - switch, do-while
    • try/catch exception handling
    • tighter definition of errors
    • formatting for numeric output
    • And many more...

ES4 - ECMAScript 4

  • Released year

    • Never Released
  • Description

    • ECMAScript 4 was developed as the next version of JavaScript, with a prototype written in ML. However, TC39 could not agree on its feature set. Hence, decision was made to develop an incremental update of ECMAScript (which became ES5).

ES5 - ECMAScript 5

  • Released year

    • December 2009 - update with 10 year of huge gap
  • Description

    • This is the version of ECMAScript that most browsers support today. It introduced many features that have become an inherent part of the language.
  • Features Added

    • "strict mode"
    • JSON support
    • String.trim() method/function
    • Array.isArray() method/function
    • Array iteration methods
    • Allows trailing commas for object literals

Note :- Currently most of the browsers are supporting upto ES5 only.

ES6 - ECMAScript 6

  • Released year

    • 2015
  • Description

    • ES6 is an next-gen of JavaScript, the ecma technical committee 39 governs ecma specification, they discovered new features to the javascript.
    • ES6 can`t compile directly in browsers, so need an compiler from ES6 to ES5, for that compiling using babel, it produce the browser compatible javascript.
  • Features Added

    • arrows
    • classes
    • enhanced object literals
    • template strings
    • destructuring
    • default + rest + spread
    • let and const datatype (earlier only var datatype was used)
    • iterators + for..of loop
    • generators
    • unicode
    • modules and module loaders
    • map, set, weakmap, weakset
    • proxies
    • symbols
    • subclassable built-ins
    • promises
    • math + number + string + array + object APIs
    • binary and octal literals
    • reflect api
    • tail calls
    • default parameter values
    • And many more...

ES7 - ECMAScript 7

  • Released year

    • 2016
  • Description

    • After ES6 update, they decided to release a new version of ECMAScript every year starting in 2015 with ES5 release.
    • From here onwards, naming convention was given based on released year (for example:- ES7 to ECMAScript 2016).
  • Features Added

    • exponential operator
    • exponential assignment
    • Array.prototype.includes()

ES8 - ECMAScript 8

  • Released year

    • 2017
  • Description

    • At the TC39 meeting in January 2017, the last feature of ECMAScript 2017, “Shared memory and atomics” was the major feature.
  • Features Added

    • Async functions
    • Shared memory and atomics
    • Object.values / Object.entries
    • string padding
    • object.getOwnPropertyDescriptors()
    • Train=ling commas in function parameter lists and calls

ES9 - ECMAScript 9

  • Released year

    • 2018
  • Description

    • At the TC39 meeting in January 2017, the last feature of ECMAScript 2017, “Shared memory and atomics” was the major feature.
  • Features Added

    • Asynchronous iteration
    • Rest/Spread properties
    • RegExp named capture groups
    • RegExp Lookbehind Assertions
    • Promise.prototype.finally()
    • Template literal revision

Summary

  • ECMAScript is the “official” name for JavaScript. It was eventually abandoned and ES3.1 became ES5, which is the JavaScript version used in the “HTML5” world.
  • The main understanding of ES5 and ES6 can explore your JavaScript knowledge as well ES7,ES8,ES9.

Resources

You can practise all the features here

Yay! we have learnt so far about ECMAScript. Thanks for reading.
Contributer : Harsh Anand