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