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