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