bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths
Learn/JavaScript/Debugging, Projects, and Reference
JavaScript•Debugging, Projects, and Reference

JavaScript Versions

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).

ECMAScript Editions

Official NameMost Important Features
ECMAScript 1 (1997)FIRST EDITION
ECMAScript 2 (1998)ONLY EDITORIAL CHANGES
ECMAScript 3 (1999) See Details Regular expressions Error handling (try...catch) The switch keyword The do...while loop
ECMAScript 4WAS NEVER RELEASED
ECMAScript 5 (2009) See DetailsThe "use strict" Directive JSON support The String trim() method The Date.now() method String property access [ ] Many new Array methods Many new Object methods
ECMAScript 6 (2015) See DetailsThe let and const keywords Default parameter values Rest parameter Destructuring assignment The spread operator Sets and Maps Classes Promises Modules For...in Loop Many new Array methods Many new String methods Many new Math methods
ECMAScript 2016 See DetailsThe ** Exponentiation Operator The Array includes() method
ECMAScript 2017 See DetailsThe String padStart() method The String padEnd() method The Object values() method The Object entries() method The Object getAllPropertyDescriptors() method The async and await keywords
ECMAScript 2018 See DetailsAsynchronus iteration Promise finally Array rest elements Object rest properties Shared memory new Regexp features (/s, \p{}, ?<=y, ?<name>)
ECMAScript 2019 See DetailsString trimStart() String trimEnd() Object fromEntries() Optional catch binding Array flat() Array flatMap() Revised Array sort() Revised JSON stringify() Revised Function toString() Separator symbols in srings
ECMAScript 2020 See DetailsBigInt String matchAll() Promise allSettled() Dynamic import globalThis import.meta Namespace exports New Operators (??, ?. &&=,=, ??=)
ECMAScript 2021 See DetailsPromise any() String replaceAll() Numeric separator
ECMAScript 2022 See DetailsArray at() String at() RegExp /d Object hasOwn() error cause await import Class fields Private methods and fields
ECMAScript 2023 See Details#! Array findLast() Array findlastIndex() Array toReversed() Array toSorted() Array toSpliced() Array with() Array findLast()
ECMAScript 2024 See DetailsMap groupBy() Object groupBy() String isWellFormed() String toWellFormed() Promise withResolvers() Atomics waitAsync
ECMAScript 2025 See DetailsRegExp /v flag RegExp escape() Float16Array Math f16round() Promise try() Import Attributes 7 new Set methods
ECMAScript 2026 See DetailsError isError() Array fromAsync() The using keyword The await using Uin8Array.toBase64() Uin8Array.fromBase64() Uin8Array.toHex() Uin8Array.fromHex()

Previous

JavaScript 1999 (ES3)

Next

JavaScript History

This chapter

Overview
32

Lessons

180m

Read time

1. JavaScript Errors2. JavaScript Debugging3. JavaScript Statements4. Project - localStorage Counter5. ECMAScript 20266. JavaScript Silent Errors7. JavaScript Debugging Console8. JavaScript Reserved Words9. Project - Event Listener10. ECMAScript 202511. JavaScript Error Statements12. JavaScript Debugging Breakpoints13. JavaScript Operator Precedence14. Project - To-Do List15. ECMAScript 202416. JavaScript Debugging Errors17. Project - Modal Popup18. ECMAScript 202319. JavaScript Debugging Async20. Project - Form Validation21. ECMAScript 202222. ECMAScript 202123. ECMAScript 202024. ECMAScript 201925. ECMAScript 201826. ECMAScript 201727. ECMAScript 201628. Javascript 2015 (ES6)29. JavaScript 2009 (ES5)30. JavaScript 1999 (ES3)31. JavaScript Versions32. JavaScript History

On this page

Current JavaScript VersionECMAScript Editions