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