ECMAScript, стандартизированная спецификация JavaScript, постоянно развивается, добавляя в язык новые функции и улучшения. В 2020 году ECMAScript 2020 (ES2020) представил несколько интересных функций, которые еще больше расширяют возможности разработчиков JavaScript. В этой статье мы углубимся в некоторые из этих примечательных функций, изучим их возможности и покажем, как они могут поднять ваше программирование на JavaScript до новых высот.

BigInt: JavaScript всегда боролся с точным числовым представлением чрезвычайно больших целых чисел. Функция BigInt в ES2020 устраняет это ограничение. BigInts — это целые числа произвольной точности, позволяющие выполнять точные вычисления с массивными числами.

const largeNumber = BigInt("9007199254740991234567890");
const result = largeNumber * 2n;
console.log(result); // Output: 18014398509481982469135780n

Необязательная цепочка(?.): Необязательная цепочка — это мощная функция, упрощающая доступ к свойствам при работе с вложенными объектами или неопределенными структурами данных. Это позволяет вам безопасно получать доступ к вложенным свойствам, не вызывая ошибок, если промежуточные свойства являются нулевыми или неопределенными.

const user = {
  name: "John",
  address: {
    street: "123 Main St",
    city: "New York",
  },
};

const zipCode = user.address?.zipCode;
console.log(zipCode); // Output: undefined

Оператор нулевого объединения (??). Оператор объединения с нулевым значением предоставляет краткий способ выбора значения по умолчанию, когда переменная имеет значение null или не определена. Он отличается от логического оператора ИЛИ (||) тем, что проверяет только нулевые значения (нулевые или неопределенные), обеспечивая точное присвоение значений по умолчанию.

const name = null;
const displayName = name ?? "Guest";
console.log(displayName); // Output: "Guest"

Promise.allSettled(). Метод Promise.allSettled() возвращает обещание, которое разрешается после того, как все заданные обещания будут выполнены, независимо от того, были ли они выполнены или отклонены. Это позволяет вам одновременно обрабатывать несколько промисов и получать их окончательные статусы.

const promises = [
  fetch(url1),
  fetch(url2),
  fetch(url3),
];

Promise.allSettled(promises)
  .then(results => {
    results.forEach((result, index) => {
      if (result.status === "fulfilled") {
        console.log(`Promise ${index + 1} resolved:`, result.value);
      } else {
        console.log(`Promise ${index + 1} rejected:`, result.reason);
      }
    });
  });

String.prototype.matchAll(): метод matchAll() возвращает итератор всех совпадений для указанного регулярного выражения в строке. Это позволяет перебирать несколько совпадений и извлекать из них полезную информацию.

const regex = /#[a-zA-Z]+/g;
const text = "Hello #world, #JavaScript is #awesome!";
const matches = [...text.matchAll(regex)];

matches.forEach(match => {
  console.log(match[0]); // Output: "#world", "#JavaScript", "#awesome"
});

В ECMAScript 2020 представлен набор мощных функций, расширяющих возможности JavaScript и позволяющих разработчикам писать более чистый, эффективный и выразительный код. Внедрение BigInts, необязательная цепочка, нулевой оператор объединения, Promise.allSettled() и String.prototype.matchAll() коренным образом изменили способы обработки больших чисел, работы с вложенными объектами, обработки значений по умолчанию, работы с обещаниями и выполнения расширенных функций. сопоставление строк.

Используя эти функции ES2020, вы можете открыть новые возможности в своих проектах JavaScript, улучшить качество кода и улучшить рабочий процесс разработки. Будьте в курсе последних спецификаций ECMAScript, чтобы использовать весь потенциал JavaScript.

Итак, воспользуйтесь преимуществами ECMAScript 2020 и поднимите свое программирование на JavaScript до новых высот продуктивности и творчества.