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. String.prototype.replaceAll ECMAScript
  2. Top-level await ECMAScript
  3. Nullish coalescing ECMAScript
  4. Optional chaining ECMAScript
  5. Subsume JSON a.k.a. JSON ⊂ ECMAScript ES2019
  6. Intl.NumberFormat Intl
  7. globalThis ECMAScript ES2020
  8. Weak references and finalizers ECMAScript
  9. Stable Array.prototype.sort ECMAScript ES2019
  10. Symbol.prototype.description ECMAScript ES2019
  11. Object.fromEntries ECMAScript ES2019
  12. Promise combinators ECMAScript ES2020
  13. Array.prototype.flat and Array.prototype.flatMap ECMAScript ES2019
  14. Numeric separators ECMAScript
  15. String.prototype.matchAll ECMAScript ES2020
  16. Intl.ListFormat Intl
  17. Public and private class fields ECMAScript
  18. Intl.RelativeTimeFormat Intl
  19. Well-formed JSON.stringify ECMAScript ES2019
  20. JavaScript modules ECMAScript ES2015
  21. BigInt: arbitrary-precision integers in JavaScript ECMAScript ES2020
  22. Optional catch binding ECMAScript ES2019
  23. String.prototype.trimStart and String.prototype.trimEnd ECMAScript ES2019
  24. Revised Function.prototype.toString ECMAScript ES2019
  25. Dynamic import() ECMAScript ES2020
  26. Promise.prototype.finally ECMAScript ES2018
  27. Intl.PluralRules Intl
  28. Object rest and spread properties ECMAScript ES2018