Home / Stay up-to-date with JavaScript Stay up-to-date with JavaScript ES2022 Top-level await .at() Class fields and blocks Object.hasOwn() error.cause RegExp match indices ES2021 replaceAll() Promise.any Numeric separators Logical assignment operators Private class methods Private get and set in classes ES2020 BigInt primitive type Dynamic importing with import() globalThis matchAll() Promise.allSettled Optional chaining operator (?.) Nullish coalescing operator (??) ES2019 .flat() .flatMap() Object.fromEntries() trimStart() and trimEnd() Catch with no parameter .toString() function method update Symbol.description Stable .sort() update JSON.parse() update Well-formed JSON.stringify() ES2018 Extending spread operator (…) to objects Promise.finally() Asynchronous iteration Group names in RegEx ‘s’ flag for . in RegExp Match Unicode in RegExp Lookbehind assertions in RegExp Lifting illegal escapes in tagged template literals ES2017 Asnyc/await Object.values and Object.entries .padStart() and .padEnd() Trailing commas in functions parameters Object.getOwnPropertyDescriptors() Shared Memory and Atomics object ES2016 Exponentiation operator (**) includes() array method ES6 (2015) Spread operator (…) Arrow functions Object and array destructuring assignment Symbol primitive type Modules ‘let’ and ‘const’ Promises Related Posts:The tips and tricks of ES2019ES2020: Hello BigInt and dynamic importingES2022: What's new for JavaScript?ES2018: A review of the new features with code examplesA Short Guide to JavaScript PromisesWhat's new for JavaScript in ES2021?