Flash cards
Review the key moves
What is the main idea behind ECMAScript 2021?
Lesson checks
Practice each idea before moving on
Short Mimo-style checks built from this lesson's code, terms, and sequence.
Which statement best captures the main point of this lesson?
Complete the missing token from the example code.
// ___ a PromisePut the learning moves in the order that makes the concept easiest to apply.
New Features in JavaScript 2021
| Feature | Description |
|---|---|
| Promise.any() | Takes promises as input and returns a single promise |
| String replaceAll() | Replaces all occurrences of a substring in a string |
| Numeric Separator | New numeric separator (_) makes numbers more readable |
Browser Support
ECMAScript 2021 is supported in all modern browsers since April 2021 :
| Chrome 85 | Edge 85 | Firefox 79 | Safari 14.1 | Opera 71 |
|---|---|---|---|---|
| Aug 2020 | Aug 2020 | Jul 2020 | Apr 2021 | Sep 2020 |
JavaScript Promise.any()
Promise.any() is a static method in JavaScript that takes an iterable of Promises as input and returns a single Promise.
Example
// Create a Promise
const myPromise1 = new Promise((resolve, reject) => {
setTimeout(resolve, 200, "King");
});
// Create another Promise
const myPromise2 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, "Queen");
});
// Run when any promise fulfill Promise.any([myPromise1, myPromise2]).then((x) => { myDisplay(x);
});JavaScript String ReplaceAll()
ES2021 introduced the string method replaceAll()
text = text.replaceAll("Cats","Dogs");
text = text.replaceAll("cats","dogs");The replaceAll() method allows you to specify a regular expression instead of a string to be replaced.
If the parameter is a regular expression, the global flag (g) must be set, otherwise a TypeError is thrown.
text = text.replaceAll(/Cats/g,"Dogs");
text = text.replaceAll(/cats/g,"dogs");ES2020 introduced the string method matchAll().
JavaScript Numeric Separator (_)
ES2021 intoduced the numeric separator (_) to make numbers more readable:
Example
const num = 1_000_000_000;The numeric separator is only for visual use.
Example
const num1 = 1_000_000_000;
const num2 = 1000000000;
(num1 === num2);The numeric separator can be placed anywhere in a number:
Example
const num1 = 1_2_3_4_5;The numeric separator is not allowed at the beginning or at the end of a number.
In JavaScript only variables can start with _.