ECMAScript
ES6(ECMAScript 2015)
ES7(ECMAScript 2016)
Array.prototype.includes
Exponentiation operator
ES8(ECMAScript 2017)
Object.values/Object.entries
String padding
Object.getOwnPropertyDescriptors
Trailing commas in function parameter lists and calls
Async functions
Shared memory and atomics
ECMAScript 2018
Lifting template literal restriction
s (dotAll) flag for regular expressions
RegExp named capture groups
Rest/Spread Properties
RegExp Lookbehind Assertions
RegExp Unicode Property Escapes
Promise.prototype.finally
Asynchronous Iteration
ECMAScript 2019
Optional catch binding
JSON superset
Symbol.prototype.description
Function.prototype.toString revision
Object.fromEntries
Well-formed JSON.stringify
String.prototype.{trimStart,trimEnd}
Array.prototype.{flat,flatMap}
ECMAScript 2020
String.prototype.matchAll
import()
BigInt
Promise.allSettled
globalThis
for-in mechanics
Optional Chaining
Nullish coalescing Operator
import.meta
ECMAScript 2021
String.protoype.replaceAll
Promise.any
WeakRefs
Logical Assignment Operators
Numeric separators
ECMAScript 2022
Class Fields (Private instance methods and accessors, Class Public Instance Fields & Private Instance Fields, Static class fields and private static methods)
RegExp Match Indices
Top-level await
Ergonomic brand checks for Private Fields
.at()
Accessible Object.prototype.hasOwnProperty
Class Static Block
Error Cause
……
浏览器兼容