The JavaScript Evolution - ES1 (1995) to ES12 (ES2021)

Jul 13, 2019


CTIP - The Council for Trade and Investment Promotion welcomes you to discover the fascinating journey of JavaScript's evolution. From its humble beginnings in 1995 with ES1 to the latest version ES12 (ES2021), this programming language has undergone significant enhancements to empower developers worldwide. In this article, we delve into the major milestones, features, and improvements in each iteration, highlighting the evolution of JavaScript and its impact on the world of web development.

The Birth of ES1 - 1995

In 1995, Brendan Eich created the first version of JavaScript, known as ECMAScript 1 (ES1). This groundbreaking release introduced the core features of the language, such as variables, functions, loops, and objects. It quickly gained popularity and became an integral part of web development.

ES2 - 1996 and ES3 - 1999

The following years witnessed the introduction of ES2 and ES3, which brought important updates and enhancements to JavaScript. ES2 introduced support for regular expressions, while ES3 introduced features like try/catch statements and improved string handling capabilities, making JavaScript more robust and flexible.

ES4, Harmony, and ECMAScript 5 - 2008

Although ES4 was initially proposed, it faced challenges and was eventually abandoned. However, this setback led to the creation of ES Harmony, an effort to bring harmony between different JavaScript implementations. The outcome was ECMAScript 5 (ES5), released in 2008, which introduced significant improvements, including JSON support, strict mode, and enhanced array handling.

Introducing ES6 (ES2015) and Beyond

The release of ECMAScript 2015, commonly referred to as ES6, marked a major milestone in JavaScript's evolution. ES6 introduced a plethora of new features, such as arrow functions, classes, template literals, modules, and much more. These additions enhanced the language's expressiveness, readability, and overall developer experience.

ES7 (ES2016), ES8 (ES2017), and ES9 (ES2018)

ES7, ES8, and ES9 continued the trend of introducing new features and improvements to JavaScript. ES7 added concepts like array includes, exponentiation operator, and array prototype methods like flat, flatMap, and Object.values. ES8 introduced async/await, shared memory, and object property spread, among others. ES9 included features such as rest/spread properties, promise.prototype.finally, and asynchronous iteration.

The Era of ES10 (ES2019)

ES10, also known as ES2019, brought significant improvements to JavaScript. This update introduced features like array flat, array flatMap, optional catch binding, and Object.fromEntries, allowing developers to write more concise and efficient code. Furthermore, ES10 introduced well-defined semantics for global objects, enhancing consistency across different JavaScript environments.

ES11 (ES2020) and ES12 (ES2021)

ES11, released as ES2020, and ES12, known as ES2021, continued to shape JavaScript's evolution. ES11 introduced features like dynamic import, global this, BigInt, and Promise.allSettled, enabling developers to handle promises and asynchronous operations more effectively. ES12 built on these advancements with features such as logical assignment operators, string.prototype.replaceAll, private class fields, and more.


The evolution of JavaScript from ES1 (1995) to ES12 (ES2021) showcases the commitment of the JavaScript community to continuously improve and enhance the language. The regular updates and new features introduced in each iteration cater to the needs of modern web development, enabling developers to write efficient, maintainable, and scalable code. Stay up-to-date with CTIP - The Council for Trade and Investment Promotion to explore the latest advancements in JavaScript programming and leverage them within your projects.

Thank you for joining us on this journey through JavaScript's evolution!

Lowri Jones
Amazing JavaScript evolution!
Oct 5, 2023