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