JavaScript - Versions
JavaScript was developed by Brendan Eich in 1995. It was standardized in 1997 by European Computer Manufacturers Association (ECMA) and officially known as ECMAScript. The first version of the language is known as ECMSScript 1 (abbreviated as ES1). The fist three versiosn (ES1, ES2, and ES3) laid the foundation of the language. The fourth version, ES4, was abandoned. The first main revision done in ES5(2009). The second major revised version is ES6 (ECMAScript 2015). After 2015, the versions are named by the year in which it it released.
The latest version of JavaScript is ECMAScript 2023.
JavaScript Versions
In the Below table, we have specified detailed information about each version.
| Version |
Official Name |
Release Year |
Features Added |
| ES1 |
ECMAScript 1 |
1997 |
First release |
| ES2 |
ECMAScript 2 |
1998 |
Minor changes |
| ES3 |
ECMAScript 3 |
1999 |
- Added regular expressions
- Added do-while
- Added switch
- Added try/catch
|
| ES4 |
ECMAScript 4 |
Never Released. |
|
| ES5 |
ECMAScript 5 |
2009 |
- JavaScript strict mode
- Multiline strings
- String.trim()
- Array methods
- Object methods
- Getters and setters
- Trailing commas
|
| ES6 |
ECMAScript 2015 |
2015 |
- let and const statements
- Map and set objects
- Arrow functions
- For/of loop
- Some array methods
- Symbol
- Classes
- Promises
- JavaScript Modules
- New Number methods and properties
- For/of loop
- Spread operator
|
| ES7 |
ECMAScript 2016 |
2016 |
- Exponential (**) operator
- Array.includes() method
|
| ES8 |
ECMAScript 2017 |
2017 |
- Added Async/await
- Added Object.entries() method
- Added Object.values() method
- Added Object.getOwnPropertyDescriptor() method
- Added string padding
|
| ES9 |
ECMAScript 2018 |
2018 |
- Rest object properties
- JavaScript shared memory
- Promise.finally() method
- New features of the RegExp() object
|
| ES10 |
ECMAScript 2019 |
2019 |
- String trim.start()
- String trim.end()
- Array.flat()
- Revised Array.sort()
- Revised JSON.stringify() / toString()
- Object.fromEntries() method
|
| ES11 |
ECMAScript 2020 |
2020 |
- Nullish Coalescing Operator (??)
- BigInt primitive data type
|
| ES12 |
ECMAScript 2021 |
2021 |
- String.replaceAll() method
- Promise.Any() method
|
| ES13 |
ECMAScript 2022 |
2022 |
- The static block inside the class
- New class features
- Top-level await
|
| ES14 |
ECMAScript 2023 |
2023 |
- Array findLast() & findLastIndex()
- Hashbang Grammer
- Symbols as WeakMap keys
|
Since 2016, early update is being released with version named by the year of release. The update release in June 2023 is known as ECMAScript 2023.
Browser Support
All modern browsers fully support the ES1 to ES6. For other versions, you may use Polyfill and write the additional code.
| Chrome |
Firefox |
Microsoft Edge |
Opera |
Safari |
Firefox Android |
| Yes |
Yes |
Yes |
Yes |
Yes |
Yes |