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
Ver | Official Name | Description |
---|---|---|
ES1 | ECMAScript 1 (1997) | First Edition (1997) ... |
ES2 | ECMAScript 2 (1998) | Editorial changes ... |
ES3 | ECMAScript 3 (1999) | Added regular expressions Added try/catch Added switch Added do-while ... |
ES4 | ECMAScript 4 | Too ambitious, never released |
ES5 | ECMAScript 5 (2009) | Added "strict mode" Added JSON support Added String.trim() Added Array.isArray() Added Array iteration methods Allows trailing commas for object literals ... |
ES6 | ECMAScript (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