ECMAScript Editions

Ver Official Name Description
ES1 ECMAScript 1 (1997)

First edition

The first version of ECMAScript was released in 1997. It contains only a few basic features, like variables, functions and loops.

ES2 ECMAScript 2 (1998)

Editorial changes

The second version of ECMAScript is released in 1998. It contains only minor changes compared to the first version.

ES3 ECMAScript 3 (1999)

Added regular expressions
Added try/catch
Added switch
Added do-while

The third version of ECMAScript is released in 1999. It adds many new features, such as try/catch for error handling, new comparison operators and regular expressions.

ES4 ECMAScript 4 Never released
ES5 ECMAScript 5 (2009)

Read More

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

The fifth version of ECMAScript was released in 2009. It adds many new features, such as support for strict objects, the definition of read-only properties and the ability to define methods directly on objects.

ES6 ECMAScript 2015

Read More

Added let and const
Added default parameter values
Added Array.find()
Added Array.findIndex()

Classes

Spread

Template literals

 

  ECMAScript 2016

Read More

Added exponential operator (**)
Added Array.includes()

Rest/spread objects

Async/wait

  ECMAScript 2017

Read More

Added string padding
Added Object.entries()
Added Object.values()
Added async functions
Added shared memory
Allows trailing commas for function parameters

Array.find()

Array.findIndex()

Array.flat()

Array.flatMap()

 

 

  ECMAScript 2018

Read More
Added rest / spread properties
Added asynchronous iteration
Added Promise.finally()
Additions to RegExp
  ECMAScript 2019

Read More
String.trimStart()
String.trimEnd()
Array.flat()
Object.fromEntries
Optional catch binding
  ECMAScript 2020

Read More

The Nullish Coalescing Operator (??)

 

  ECMAScript 2021
  ECMAScript 2022  
  • Method .at();
  • Object.hasOwn();
  • RegExp: match indices(‘d’ flag);
  • Error: .cause;
  • New members of Classes;
  • Private Slot Checks;
  • Top-level Await.
  ECMAScript 2023