ECMAScript 2022

  • Предыдущая страница JS 2021
  • Следующая страница JS 2023

Номер версии JavaScript

Старые версии ECMAScript назывались по номерам: ES5 и ES6.

С 2016 года версии называются по годам: ES2016, 2018, 2020, 2022.

Новые возможности ES2022

Предупреждение:

Эти функции относительно новые.

В старых браузерах может потребоваться альтернативный код (Polyfill).

JavaScript Array at()

ES2022 ввел метод массива at():

Пример 1

Получите третий элемент массива fruits:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits.at(2);

Попробуйте сами

Пример 2

Получите третий элемент массива fruits:

const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[2];

Попробуйте сами

at() Метод возвращает элемент по указанному индексу из массива.

at() Методы, сравнимые с [] Результаты одинаковы.

С марта 2022 года все современные браузеры поддерживают at() Метод:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Апрель 2021 года июль 2021 года июль 2021 года март 2022 года август 2021 года

Примечание:

Многие языки позволяют использовать отрицательные индексы (например [-1]) Доступ к концу объекта/массива/строки.

Это невозможно в JavaScript, потому что [] Используется для доступа к массивам и объектам. obj[-1] указывает на значение ключа -1, а не на последний атрибут объекта.

at() Метод был введен в ES2022 для решения этой проблемы.

JavaScript String at()

ES2022 ввел метод строки at():

Пример 1

Получите третий символ строки name:

const name = "W3Schools";
let letter = name.at(2);

Попробуйте сами

Пример 2

Получите третий символ строки name:

const name = "W3Schools";
let letter = name[2];

Попробуйте сами

at() Методы возвращают指定的 символ из строки по индексу.

at() Методы, сравнимые с [] Результаты одинаковы.

С марта 2022 года все современные браузеры поддерживают at() Метод:

Chrome Edge Firefox Safari Opera
Chrome 92 Edge 92 Firefox 90 Safari 15.4 Opera 78
Апрель 2021 года июль 2021 года июль 2021 года март 2022 года август 2021 года

модификатор d RegExp

ES2022 добавил /d Модификаторы, используемые для обозначения начала и конца соответствия.

Пример

let text = "aaaabb";
let result = text.match(/(aa)(bb)/d);

Попробуйте сами

Модификаторы RegExp используются для указания несравнения的大小енных и других глобальных поисков:

Модификаторы Описание Попробуйте сами
g Выполнение глобального соответствия (поиск всех). Попробуйте сами
i Выполнение несравнения的大小енных соответствий. Попробуйте сами
d Выполнение соответствия подстроки (добавлено в ES2022). Попробуйте сами
m Выполнение многстрочного соответствия. Попробуйте сами

Object.hasOwn()

ES2022 предоставляет безопасный способ проверки, является ли свойство собственным свойством объекта.

Object.hasOwn() Подобно Object.prototype.hasOwnPropertyНо поддерживает все типы объектов.

Пример

Object.hasOwn(myObject, age)

Попробуйте сами

Причина ошибки

ES2022 позволяет指定 корневую причину ошибки с помощью error.cause.

Пример

try { 
  connectData(); 
} 
  throw new Error("Connecting failed.", { cause: err }); 
}

Попробуйте сами

await import JavaScript

Модули JavaScript теперь могут ждать необходимые ресурсы до выполнения:

import {myData} from './myData.js';
const data = await myData();

Классовые поля JavaScript

class Hello {
  counter = 0; // классовое поле
}
const myClass = new Hello();
let x = myClass.counter;

С апреля 2021 года все современные браузеры поддерживают классовые поля declarations:

Chrome Edge Firefox Safari Opera
Chrome 72 Edge 79 Firefox 69 Safari 14.1 Opera 60
2019 год 1 января Январь 2020 года 2019 год 9 сентября Апрель 2021 года Январь 2020 года

Частные методы и поля в JavaScript

class Hello {
  #counter = 0;  // частное поле
  #myMethod() {} // частный метод
}
const myClass = new Hello();
let x = myClass.#counter; // ошибка
myClass.#myMethod();      // ошибка

С июня 2021 года в всех современных браузерах поддерживаются частные методы и поля:

Chrome Edge Firefox Safari Opera
Chrome 74 Edge 79 Firefox 90 Safari 14.1 Opera 62
Апрель 2019 года Январь 2020 года Июнь 2021 года Апрель 2021 года Июнь 2019 года
  • Предыдущая страница JS 2021
  • Следующая страница JS 2023