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