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