Skip to main content

Features

· 3 min read

JavaScript and WebAssembly features

This section explains the latest new features in JavaScript, the programming language specified by ECMA-262 (ECMAScript) and ECMA-402 (the ECMAScript Internationalization API), and in WebAssembly (Wasm).

We aim to provide concise explanations of new language features with easy-to-understand code examples. For more in-depth documentation, please refer to the external links in each explainer.

  • JavaScript's New Superpower: Explicit Resource Management 09 May 2025 ECMAScript
  • Iterator helpers 27 March 2024 ECMAScript
  • Import attributes 31 January 2024 ECMAScript
  • RegExp v flag with set notation and properties of strings 27 June 2022 ECMAScript
  • Finding elements in Arrays and TypedArrays 27 October 2021 ECMAScript
  • at method for relative indexing 13 July 2021 ECMAScript
  • Error causes 07 July 2021 ECMAScript
  • Object.hasOwn 01 July 2021 ECMAScript
  • Import assertions 15 June 2021 ECMAScript
  • Private brand checks a.k.a. #foo in obj 14 April 2021 ECMAScript
  • Class static initialization blocks 30 March 2021 ECMAScript
  • WebAssembly integration with JavaScript BigInt 12 November 2020 WebAssembly ECMAScript
  • Atomics.wait, Atomics.notify, Atomics.waitAsync 24 September 2020 ECMAScript ES2020
  • Logical assignment 07 May 2020 ECMAScript ES2021
  • Intl.DisplayNames 13 February 2020 Intl
  • Fast, parallel applications with WebAssembly SIMD 30 January 2020 WebAssembly
  • RegExp match indices 17 December 2019 ECMAScript
  • String.prototype.replaceAll 11 November 2019 ECMAScript ES2021
  • Top-level await 08 October 2019 ECMAScript
  • Nullish coalescing 17 September 2019 ECMAScript ES2020
  • Optional chaining 27 August 2019 ECMAScript ES2020
  • Subsume JSON a.k.a. JSON ⊂ ECMAScript 14 August 2019 ES2019
  • Intl.NumberFormat 08 August 2019 Intl
  • globalThis 16 July 2019 ECMAScript ES2020
  • Weak references and finalizers 09 July 2019 ECMAScript ES2021
  • Stable Array.prototype.sort 02 July 2019 ECMAScript ES2019
  • Symbol.prototype.description 25 June 2019 ECMAScript ES2019
  • Object.fromEntries 18 June 2019 ECMAScript ES2019
  • Promise combinators 12 June 2019 ECMAScript ES2020 ES2021
  • Array.prototype.flat and Array.prototype.flatMap 11 June 2019 ECMAScript ES2019
  • Numeric separators 28 May 2019 ECMAScript ES2021
  • String.prototype.matchAll 02 February 2019 ECMAScript ES2020
  • Intl.ListFormat 18 December 2018 Intl
  • Module namespace exports 18 December 2018 ECMAScript ES2020
  • Public and private class fields 13 December 2018 ECMAScript ES2022
  • Intl.RelativeTimeFormat 22 October 2018 Intl
  • Well-formed JSON.stringify 11 September 2018 ECMAScript ES2019
  • JavaScript modules 18 June 2018 ECMAScript ES2015
  • BigInt: arbitrary-precision integers in JavaScript 01 May 2018 ECMAScript ES2020
  • Optional catch binding 27 March 2018 ECMAScript ES2019
  • String.prototype.trimStart and String.prototype.trimEnd 26 March 2018 ECMAScript ES2019
  • Revised Function.prototype.toString 25 March 2018 ECMAScript ES2019
  • Dynamic import() 21 November 2017 ECMAScript ES2020
  • Promise.prototype.finally 23 October 2017 ECMAScript ES2018
  • Intl.PluralRules 04 October 2017 Intl
  • Object rest and spread properties 06 June 2017 ECMAScript ES2018