It all began in 1995…
This language was created to be a higher-level language for designers and non-programmers alike.
Now you might have heard about ECMAScript and its various versions. What are they?
So for your better understanding -
- The term ECMAScript refers to the language standard and language versions.
Since then ECMAScript has come up with a lot of versions, each new version better than the previous one of course!
But we’re not talking in detail about all of them. Why so?
Well to be honest, from ECMAScript 1 to ECMAScript 5.1, we saw small updates and addition of minor features; except ES3 which was released in 1999 and introduced regular expressions, better string handling, new control statements, try/catch exception handling, tighter definition of errors and minor changes in anticipation of future language growth.
Check out my bestselling and highest rated Udemy course —
This is where it becomes more interesting…
- Now, ES6 was released in 2015 and is the first major upgrade to JS since 1997 - it included many new things such as modules, class declarations, lexical block scoping, iterators and generators, promises for asynchronous programming, destructuring patterns, and proper tail calls.
Well, it took many years for most browsers to support everything (and in-between transpilers were a great help which is still there to accommodate the latest updates of ES inside the browser), so eventually, everything got sorted out.
- ES7 was finalized in 2016 - Its features support for a new exponentiation operator (For e.g., 2 ** 3) and the Array.prototype.includes function, popularly known as includes.
- ES8 was released in 2017 with features such as async/await constructions which use generators and promises, Object.values(), Object.entries() and Object.getOwnPropertyDescriptors() functions for easy manipulation of Objects, and additional features for shared memory and atomics.
- ES9 was once again finalized in 2018 with some pretty cool new features such as the support for asynchronous iteration via the AsyncIterator protocol and async generators, object rest and spread properties, and additions to regular expressions.
- ES10 was published in 2019 & got updates such as a few new built-in functions like Array.prototype.flat(), Array.prototype.flatMap() for flattening arrays. In addition, it included a few minor updates to syntax and semantics.
- ES11 was published last year in 2020 and had a few new functions added but the 2 most loved additions are the bigInt and the globalThis object.
- This year we saw a newer version ES12 which introduced the replaceAll() method for strings; Promise.any(), AggregateError, logical assignment operators (??=, &&=, ||=); WeakRef, and a lot more…
We can say that to this day ES6 is the only major update that has happened.
The good thing is that new versions are always completely backward compatible, but there may occasionally be minor, hardly noticeable clean-ups.
And the best part — Old features aren’t removed or fixed. Instead, better versions of them are introduced. The best example for that is declaring variables via let — which is an improved version of var.
Founder and CEO of an IT company in India, I have more than 24 years experience of in dealing with people, processes, and codes. I started online training for my students when it was not in fashion and have trained more than 1000 students/working professionals personally which has helped them to secure awesome jobs or even start their own business.
I am also been an active corporate trainer for several years now and have been consulting with top Fortune 500/1000 companies to streamline their development projects efficiently. My goal is to share knowledge with a primary focus on advanced tools & techniques, projects, and standard programming practices to help my students understand the basics and fundamentals and make awesome technological implementations.