2020
11 featuresThe 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.
The BigInt JavaScript type represents integers of any size, including integers too large for the primitive Number type.
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.
The globalThis property accesses the global this value (and hence the global object itself) across environments.
Omit the binding parameter of a catch clause when you don't need information about the exception in a try ... catch statement.
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 destructuring assignment syntax is a JavaScript expression that unpacks values from arrays, or properties from objects, into distinct variables.
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.
Async generator functions (async function*) create iterators that return multiple promises, one after another, on-demand.