ECMAScript 2020
Номери версій JavaScript
Старі версії JS позначаються цифрами: ES5 (2009) та ES6 (2015).
З 2016 року версії мають назви за роками: ECMAScript 2016, 2017, 2018, 2019, ...
Нові функції в ES2020
- BigInt
- String matchAll()
- Оператор Nullish Coalescing (??)
- Додатковий оператор ланцюжка (з’єднання) (?.)
- Логічне AND Оператор присвоєння (&&=)
- Логічне OR присвоєння (||=)
- Присвоєння нульового об’єднання (??=)
- Promise allSettled():
Promise.allSettled([prom1,prom2,prom3]).then {}
- Динамічний імпорт
Попередження
Ці функції відносно нові.
Старішим веббраузерам може знадобитися альтернативний код (Polyfill)
JavaScript BigInt
JavaScript BigInt
змінні використовуються для зберігання великих цілих значень, які занадто великі, щоб бути представленими звичайним JavaScript Number
.
Цілі числа JavaScript точні лише до 15 цифр.
Integer Приклад
let x = 999999999999999;
let y = 9999999999999999; // занадто велике
Спробуйте самі »
BigInt Приклад
let x = 9999999999999999;
let y = 9999999999999999n;
Спробуйте самі »
Щоб створити BigInt
, додайте n до кінця цілого числа або виклику BigInt()
:
Приклад
let x = 1234567890123456789012345n;
let y = BigInt(1234567890123456789012345)
Спробуйте самі »
JavaScript typeof
BigInt
є "bigint":
BigInt
підтримується в усіх сучасних браузерах з вересня 2020 року:
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
May 2018 | Jan 2020 | Jul 2019 | Sep 2020 | Jun 2018 |
JavaScript String matchAll()
До ES2020 не існувало методу рядка, який можна було б використовувати для пошуку всіх входжень рядка в рядку.
Якщо параметр є регулярним виразом, необхідно встановити глобальний прапор (g); інакше видається TypeError.
Якщо ви хочете здійснювати пошук без урахування регістру, потрібно встановити прапорець нечутливості (i):
Примітка
ES2021 запровадив рядковий метод replaceAll().
Оператор Nullish Coalescing (??)
Оператор ??
повертає перший аргумент, якщо він не є nullish (null
або undefined
).
В іншому випадку повертається другий.
Оператор nullish підтримується в усіх сучасних браузерах з березня 2020 року:
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
Feb 2020 | Feb 2020 | Jan 2020 | Mar 2020 | Mar 2020 |
Додатковий оператор ланцюжка (з’єднання) (?.)
Додатковий оператор ланцюжка повертає undefined
, якщо об’єкт є undefined
or null
(замість того, щоб видавати помилку).
Приклад
const car = {type:"Fiat", model:"500", color:"white"};
let name = car?.name;
Спробуйте самі »
Оператор ?.=
підтримується в усіх сучасних браузерах з березня 2020 року:
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
Feb 2020 | Feb 2020 | Mar 2020 | Mar 2020 | Mar 2020 |
Оператор &&=
Логічний AND оператор присвоєння використовується між двома значеннями.
Якщо перше значення true
, призначається друге значення.
Оператор &&=
підтримується в усіх сучасних браузерах з вересня 2020 року:
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Aug 2020 | Aug 2020 | Mar 2020 | Sep 2020 | Sep 2020 |
Оператор ||=
Оператор логічне OR присвоєння використовується між двома значеннями.
Якщо перше значення false
, присвоюється друге значення.
Оператор ||=
підтримується в усіх сучасних браузерах з вересня 2020 року:
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Aug 2020 | Aug 2020 | Mar 2020 | Sep 2020 | Sep 2020 |
Оператор ??=
Оператор присвоєння нульового об’єднання використовується між двома значеннями.
Якщо перше значення undefined
або null
, присвоюється друге значення.
Оператор ??=
підтримується в усіх сучасних браузерах з вересня 2020 року:
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
Aug 2020 | Aug 2020 | Mar 2020 | Sep 2020 | Sep 2020 |