ECMAScript 2020
Номер версии JavaScript
Старые версии JS называются числами: ES5 (2009) и ES6 (2015).
С 2016 года версии命名为 по годам: ECMAScript 2016, 2017, 2018, 2019, ...
Новые характеристики ES2020:
- BigInt
- Метод строки matchAll()
- Оператор объединения значений с помощью NULL (??)
- Оператор опциональной связи (?.)
- Логический оператор AND с присваиванием (&&=)
- Логический оператор OR с присваиванием (||=)
- Оператор объединения значений с помощью NULL (??=)
- Promise.allSettled()
- Динамический импорт
Предупреждение
Эти характеристики относительно новые.
Старые браузеры могут потребовать замены кода (Polyfill).
BigInt в JavaScript
Переменные BigInt в JavaScript используются для хранения больших целых чисел, которые слишком велики, чтобы быть представлены обычными числами JavaScript.
В JavaScript максимальное количество точных цифр для целых чисел составляет 15.
Пример instances Integer
let x = 999999999999999; let y = 9999999999999999; // слишком большой
Пример instances BigInt
let x = 9999999999999999; let y = 9999999999999999n;
Чтобы создать BigInt, установите n
Присоединение к концу целого или вызов BigInt():
Пример
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
Тип JavaScript для BigInt — "bigint":
Пример
let x = BigInt(999999999999999); let type = typeof x;
С сентября 2020 года все современные браузеры поддерживают BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
май 2018 года | январь 2020 года | июль 2019 года | Сентябрь 2020 года | июнь 2018 года |
Метод matchAll() для строки JavaScript
До ES2020 не было методов строки, которые можно было бы использовать для поиска всех出现过 в строке.
Пример
const iterator = text.matchAll("Cats");
Если параметр является регулярным выражением, необходимо установить флаг глобальный (g
), в противном случае будет выброшен TypeError.
Пример
const iterator = text.matchAll(/Cats/g);
Если необходимо выполнить поиск без учета регистра, необходимо установить флаг без учета регистра (i
)
Пример
const iterator = text.matchAll(/Cats/gi);
Совет:ES2021 Введен метод строки replaceAll().
Оператор объединения пустых значений (Nullish Coalescing Operator) (?? оператор)
Если первый параметр не является пустым значением (null
или undefined
), если ??
Оператор возвращает первый параметр.
в противном случае возвращает второй.
Пример
let name = null; let text = "missing"; let result = name ?? text;
С марта 2020 года все современные браузеры поддерживают оператор nullish:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
февраль 2020 года | февраль 2020 года | январь 2020 года | Март 2020 года | Март 2020 года |
Оператор условной связи (Опциональное связывание оператор) (?. оператор)
Если объект undefined
или null
тогдаОператор условной связиВозвращает undefined
(вместо того чтобы выбрасывать ошибку).
Пример
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
С марта 2020 года все современные браузеры поддерживают ?.=
Оператор:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
февраль 2020 года | февраль 2020 года | Март 2020 года | Март 2020 года | Март 2020 года |
Логический оператор AND для присваивания (&&= оператор)
Логический оператор AND присваиванияиспользуется между двумя значениями.
Если первым значением является true
Если первый значений
Пример логического AND присваивания
let x = 100; x &&= 5;
С сентября 2020 года все современные браузеры поддерживают &&=
Оператор:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Август 2020 года | Август 2020 года | Март 2020 года | Сентябрь 2020 года | Сентябрь 2020 года |
Логический оператор OR присваивания (оператор ||=)
Логический оператор OR присваиванияиспользуется между двумя значениями.
Если первым значением является false
Если первый значений
Пример логического OR присваивания
let x = 10; x ||= 5;
С сентября 2020 года все современные браузеры поддерживают ||=
Оператор:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Август 2020 года | Август 2020 года | Март 2020 года | Сентябрь 2020 года | Сентябрь 2020 года |
Оператор объединения значений для присваивания (??= оператор)
Оператор объединения значений для присваивания(Nullish Coalescing Assignment Operator) используется между двумя значениями.
Если первый значений undefined
или null
Если первый значений
Пример объединения значений для присваивания
let x = 10; x ??= 5;
С сентября 2020 года все современные браузеры поддерживают ??=
Оператор:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Август 2020 года | Август 2020 года | Март 2020 года | Сентябрь 2020 года | Сентябрь 2020 года |