Skip to content
Search

ECMAScript

lastmod 2025-02-11created 2016-04-0814 edits

ECMAScript is a standardized scripting programming language defined by Ecma International in the ECMA-262 technical specification. The language is widely used on the web and is often thought of as JavaScript or JScript, but the terms differ in meaning in specific ways. To understand the relationship between ECMAScript, JavaScript, and JScript, you need to know the history of ECMAScript.

Versions

Ten editions of ECMA-262 have been published. Work on the 10th edition of the standard was finalized in June 2019.

Edition

Publication date

Name

Changes from the previous edition

1

June 1997

First edition

2

June 1998

Changes to keep the specification fully aligned with the ISO/IEC 16262 international standard.

3

December 1999

Powerful regular expressions, better string handling, new control statements , try/catch exception handling, tighter definition of errors, formatting for numeric output, etc.

4

Abandoned

The 4th edition was abandoned due to political differences over the language. Some of the work on this edition became the basis of the 5th edition, and other parts form the basis of ECMAScript.

5

December 2009

Adds "strict mode", a subset that provides more thorough error checking and avoids error-prone constructs. Clarifies many ambiguities in the 3rd edition specification.1

5.1

June 2011

Edition 5.1 of the ECMAScript standard is aligned with the third edition of the ISO/IEC 16262:2011 international standard.

6

June 2015

ECMAScript 2015 (ES2015)

The 6th edition adds new syntax for writing complex applications, such as classes and modules. However, the semantics of this syntax are defined in the same way as the 5th edition's strict mode. This edition is also called "ECMAScript Harmony" or "ES6 Harmony".

7

June 2016

ECMAScript 2016 (ES2016)

Exponentiation operator added, Array.prototype.includes

8

June 2017

ECMAScript 2017 (ES2017)

Trailing commas allowed in function expression arguments, Object values/entries methods, async/await, etc.

9

June 2018

ECMAScript 2018 (ES2018)

Promise.finally, Async iteration, object rest/spread property, etc.

10

June 2019

ECMAScript 2019 (ES2019)

Object.fromEntries, flat, flatMap, Symbol.description, optional catch, etc.

4th Edition (abandoned)

5th Edition

6th Edition – ECMAScript 2015

7th Edition – ECMAScript 2016

In ES2016, the <coede>await</code> keyword for asynchronous programming was designated as a "Future Reserved Word".2 (i.e., not yet implemented)

8th Edition – ECMAScript 2017

await, async
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/await

9th Edition – ECMAScript 2018

10th Edition – ECMAScript 2019

11th Edition – ECMAScript 2020

Nullish Coalescing Operator
e.g. a ?? b
Optional Chaining
e.g. foo.a?.b

12th Edition – ECMAScript 2021

Logical assignment operators
e.g. obj.prop ??= foo();
Numeric separators
e.g. 10_000_000_000

See also

Favorite site

References

author Zer0 sitemap