Skip to content

JavaScript Versions

JavaScript was invented by Brendan Eich in 1995, and became an ECMA standard in 1997.
ECMAScript is the official name of the language.
ECMAScript versions have been abbreviated to ES1, ES2, ES3, ES5, and ES6.
Since 2016, versions are named by year (ECMAScript 2016, 2017, 2018, 2019, 2020).

ECMAScript editions

VerOfficial NameDescription
ES1ECMAScript 1 (1997)First Edition (1997)
...
ES2ECMAScript 2 (1998)Editorial changes
...
ES3ECMAScript 3 (1999)Added regular expressions
Added try/catch
Added switch
Added do-while
...
ES4ECMAScript 4Too ambitious, never released
ES5ECMAScript 5 (2009)Added "strict mode"
Added JSON support
Added String.trim()
Added Array.isArray()
Added Array iteration methods
Allows trailing commas for object literals
...
ES6ECMAScript (2015)Added let and const
Added default parameter values
Added Array.find()
Added Array.findIndex()
...
ECMAScript (2016)Added exponential operator (**)
Added Array.includes()
...
ECMAScript (2017)Added String padding
Added Object.entries()
Added Object.values()
Added async functions
Added shared memory
Added trailing commas for function parameters
...
ECMAScript (2018)Added rest / spread properties
Added asynchronous iteration
Added Promise.finally()
Additions to RegExp
...
ECMAScript (2019)String.trimStart()
String.trimEnd()
Array.flat()
Object.fromEntries
Optional catch binding
...
ECMAScript (2020)BigInt
Dynamic import()
Nullish coalescing Operator (??)
Optional chaining operator
...

PS: ES4 was abandoned, and the features planned for ES4 were divided into smaller releases, and became ES5, ES6, etc.
ES2015 was a major update to the ECMAScript language specification. ES2016, ES2017, ES2018, ES2019, and ES2020 were released in subsequent years.
JavaScript versions are often referred to by the year in which they are released. ECMAScript 2015 is often referred to as ES6.

Browser Support

see Browser Support

references