W3Schools.com (original) (raw)

Current JavaScript Version

The current JavaScript version is ES2025.

ECMAScript is the official name of the JavaScript standard.

JavaScript was invented by Brendan Eich in 1995 and became an ECMA standard in 1997.

The first ECMAScript versions were abbreviated by numbers. (ES1, ES2, ES3, ES5, ES6).

From 2016, versions are named by year (ECMAScript 2016, 2017, 2018, ..., 2025).

Official Name Most Important Features
ECMAScript 1 (1997) FIRST EDITION
ECMAScript 2 (1998) ONLY EDITORIAL CHANGES
ECMAScript 3 (1999) See Details Regular expressionsError handling (try...catch)The switch keywordThe do...while loop
ECMAScript 4 WAS NEVER RELEASED
ECMAScript 5 (2009) See Details The "use strict" DirectiveJSON supportThe String trim() methodThe Date.now() methodString property access [ ]Many new Array methodsMany new Object methods
ECMAScript 6 (2015) See Details The let and const keywordsDefault parameter valuesRest parameterDestructuring assignmentThe spread operatorSets and MapsClassesPromisesModulesFor...in LoopMany new Array methodsMany new String methodsMany new Math methods
ECMAScript 2016 See Details The ** Exponentiation OperatorThe Array includes() method
ECMAScript 2017 See Details The String padStart() methodThe String padEnd() methodThe Object values() methodThe Object entries() methodThe Object getAllPropertyDescriptors() methodThe async and await keywords
ECMAScript 2018 See Details Asynchronus iterationPromise finallyArray rest elementsObject rest propertiesShared memorynew Regexp features (/s, \p{}, ?<=y, ?)
ECMAScript 2019 See Details String trimStart()String trimEnd()Object fromEntries()Optional catch bindingArray flat()Array flatMap()Revised Array sort()Revised JSON stringify()Revised Function toString()Separator symbols in srings
ECMAScript 2020 See Details BigIntString matchAll()Promise allSettled()Dynamic importglobalThisimport.metaNamespace exportsNew Operators (??, ?. &&=, |
ECMAScript 2021 See Details Promise any()String replaceAll()Numeric separator
ECMAScript 2022 See Details Array at()String at()RegExp /dObject hasOwn() error causeawait importClass fieldsPrivate methods and fields
ECMAScript 2023 See Details #!Array findLast()Array findlastIndex()Array toReversed()Array toSorted()Array toSpliced()Array with()Array findLast()
ECMAScript 2024 See Details Map groupBy()Object groupBy()String isWellFormed()String toWellFormed()Promise withResolvers()Atomics waitAsync
ECMAScript 2025 See Details RegExp /v flagRegExp escape()Float16ArrayMath f16round()Promise try()Import Attributes 7 new Set methods
ECMAScript 2026 See Details Error isError()Array fromAsync()The using keywordThe await usingUin8Array.toBase64()Uin8Array.fromBase64()Uin8Array.toHex()Uin8Array.fromHex()