Before answering what ECMAScript is, I want to introduce on its birth history.
OK, First of all, what is "Standard"?
To understand this concept, please think about the keyboard that you often use on your telephone, Laptop or PC. Although these types of keyboards are different in manufacturer, they still share the same Layout (letter, number , function and Enter keys are all on the same positions). That's because the keyboard manufacturers are complying with the "QWERTY Layout Standard"
Thus, the "standard" can be understood as a "document" declared by a "reputable" organization in a community and requires all relevant products that are born later to comply with the regulations of this document.
ECMAECMA stands for "European Computer Manufacturers Association".
In June 2015, ECMA International announced the ES6 version (It is also commonly known as ECMAScript6, ES2015, ECMAScript2015). It is an important upgrade for ECMAScript since ES5 standardized in 2009.
List of common Script-Engines:
|Chakra (JScript9)||A JScript Engine used in the IE (Internet Explorer) browser of Microsoft.|
Whenever a new specification version of ECMAScript is published, it takes some time so that:
- Browsers upgrade their Script-Engine.
- Developers study and write code in accordance with new standards. Of course, the old standards still exist and are still understood by the Script-Engines.
In fact, when a new version of ECMAScript is announced, Script-Engine developing companies often do not update all new features at once, only updating gradually on a schedule. So programmers often ask questions:
- Which version ECMAScript does this browser support?
- What features of ECMAScript does this browser support ?
To answer the above questions, you can look up the following link:
The ES5 (ECMAScript 5) specification was born in 2009. Most browsers at present fully support all its features while the ES6 (ECMAScript 6) specification was born in 2015. Its browsers have not fully supported all new features. But the ES6 syntax and features are really modern and pure for developers, and they want to use it. The problem is that when writing code with ES6 syntax, this code may not be understood in some browsers.
Transpiler stands for TRANSforming + comPILER. It implies the tools capable of converting code from X version to Y version.
Babel means a Transpiler. It can convert ES6 code to ES5 code. Therefore, developers can write code in the ES6 style and feel assured that it can be executed on all browsers with the help of Babel.