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.

  1. JavaScript's New Superpower: Explicit Resource Management ECMAScript
  2. Iterator helpers ECMAScript
  3. Import attributes ECMAScript
  4. RegExp v flag with set notation and properties of strings ECMAScript
  5. Finding elements in Arrays and TypedArrays ECMAScript
  6. at method for relative indexing ECMAScript
  7. Error causes ECMAScript
  8. Object.hasOwn ECMAScript
  9. Import assertions ECMAScript
  10. Private brand checks a.k.a. #foo in obj ECMAScript
  11. Class static initialization blocks ECMAScript
  12. WebAssembly integration with JavaScript BigInt WebAssembly ECMAScript
  13. Atomics.wait, Atomics.notify, Atomics.waitAsync ECMAScript ES2020
  14. Logical assignment ECMAScript ES2021
  15. Intl.DisplayNames Intl
  16. Fast, parallel applications with WebAssembly SIMD WebAssembly
  17. RegExp match indices ECMAScript
  18. String.prototype.replaceAll ECMAScript ES2021
  19. Top-level await ECMAScript
  20. Nullish coalescing ECMAScript ES2020
  21. Optional chaining ECMAScript ES2020
  22. Subsume JSON a.k.a. JSON ⊂ ECMAScript ES2019
  23. Intl.NumberFormat Intl
  24. globalThis ECMAScript ES2020
  25. Weak references and finalizers ECMAScript ES2021
  26. Stable Array.prototype.sort ECMAScript ES2019
  27. Symbol.prototype.description ECMAScript ES2019
  28. Object.fromEntries ECMAScript ES2019
  29. Promise combinators ECMAScript ES2020 ES2021
  30. Array.prototype.flat and Array.prototype.flatMap ECMAScript ES2019
  31. Numeric separators ECMAScript ES2021
  32. String.prototype.matchAll ECMAScript ES2020
  33. Intl.ListFormat Intl
  34. Module namespace exports ECMAScript ES2020
  35. Public and private class fields ECMAScript ES2022
  36. Intl.RelativeTimeFormat Intl
  37. Well-formed JSON.stringify ECMAScript ES2019
  38. JavaScript modules ECMAScript ES2015
  39. BigInt: arbitrary-precision integers in JavaScript ECMAScript ES2020
  40. Optional catch binding ECMAScript ES2019
  41. String.prototype.trimStart and String.prototype.trimEnd ECMAScript ES2019
  42. Revised Function.prototype.toString ECMAScript ES2019
  43. Dynamic import() ECMAScript ES2020
  44. Promise.prototype.finally ECMAScript ES2018
  45. Intl.PluralRules Intl
  46. Object rest and spread properties ECMAScript ES2018