2020
11 featuresThe BigInt JavaScript type represents integers of any size, including integers too large for the primitive Number type.
The logical AND assignment (&&=) and the logical OR assignment (||=) operators short-circuit the respective binary logical operators.
The nullish coalescing (??) and nullish coalescing assignment (??=) operators return (or assign) its right-hand side operand when its left-hand side operand is null or undefined, and otherwise returns its left-hand side operand.
To improve readability for numeric literals, underscores (_) can be used as separators. For example, 1_050.95 is equivalent to 1050.95.
The #! comment at the absolute start of a script or module is treated as a normal comment and is ignored by the JavaScript engine.
Async generator functions (async function*) create iterators that return multiple promises, one after another, on-demand.
The destructuring assignment syntax is a JavaScript expression that unpacks values from arrays, or properties from objects, into distinct variables.
Omit the binding parameter of a catch clause when you don't need information about the exception in a try ... catch statement.
The spread (...) syntax allows an iterable, such as an array or string, to be expanded in places where zero or more arguments (for function calls) or elements (for array literals) are expected.
Template literals are literals delimited with backtick (`) characters, allowing for multi-line strings, string interpolation with embedded expressions, and special constructs called tagged templates.
The globalThis property accesses the global this value (and hence the global object itself) across environments.