Введение

Представьте, что вы разрабатываете веб-приложение и вдруг сталкиваетесь с проблемой, которую невозможно решить с помощью существующих функций JavaScript. Это раздражает, не так ли? Но что если я скажу вам, что есть новые функции JavaScript, которые могут помочь вам решить эти проблемы? В этой статье мы рассмотрим 7 новых функций JavaScript, которые уже доступны для использования, и 2 функции, которых мы все еще ждем.

Новые функции JavaScript

1. Optional Chaining

Optional Chaining — новая функция JavaScript, которая позволяет безопасно обращаться к свойствам и методам объекта, не вызывая ошибок при отсутствии свойства.
const user = {  name: 'John',  address: {    street: '123 Main St'  }};console.log(user.address?.street); // "123 Main St"console.log(user.address?.city); // undefined
В этом примере мы используем оператор `?.` для доступа к свойству `street` объекта `address`. Если свойство `address` отсутствует, выражение не вызовет ошибки, а вернет `undefined`.

2. Nullish Coalescing

Nullish Coalescing — новая функция JavaScript, которая позволяет задавать значение по умолчанию для переменной, если она равна `null` или `undefined`.
const name = null;const surname = 'Doe';const fullName = name ?? surname;console.log(fullName); // "Doe"
В этом примере мы используем оператор `??` для задания значения по умолчанию для переменной `fullName`. Если переменная `name` равна `null` или `undefined`, выражение вернет значение переменной `surname`.

3. Promise.allSettled

Promise.allSettled — новая функция JavaScript, которая позволяет дождаться выполнения всех промисов в массиве и возвращает массив с результатами.
const promises = [  Promise.resolve(1),  Promise.reject('error'),  Promise.resolve(3)];Promise.allSettled(promises).then(results => {  console.log(results);  // [  //   { status: 'fulfilled', value: 1 },  //   { status: 'rejected', reason: 'error' },  //   { status: 'fulfilled', value: 3 }  // ]});
В этом примере мы используем функцию `Promise.allSettled` для ожидания выполнения всех промисов в массиве. Результатом является массив с объектами, которые содержат информацию о результате каждого промиса.

4. String.prototype.matchAll

String.prototype.matchAll — новая функция JavaScript, которая позволяет получить все совпадения регулярного выражения в строке.
const str = 'abcabc';const regex = /a/g;const matches = Array.from(str.matchAll(regex), m => m[0]);console.log(matches); // ["a", "a"]
В этом примере мы используем функцию `matchAll` для получения всех совпадений регулярного выражения в строке. Результатом является массив со всеми совпадениями.

5. Dynamic Import

Dynamic Import — новая функция JavaScript, которая позволяет импортировать модули динамически.
import('module-name').then(module => {  console.log(module);});
В этом примере мы используем функцию `import` для динамического импорта модуля. Результатом является промис, который разрешается с импортированным модулем.

6. BigInt

BigInt — новая функция JavaScript, которая позволяет работать с целыми числами произвольной точности.
const largeNumber = 9007199254740991n;console.log(largeNumber); // 9007199254740991n
В этом примере мы используем функцию `BigInt` для создания целого числа произвольной точности.

7. globalThis

globalThis — новая функция JavaScript, которая позволяет получить доступ к глобальному объекту в любом контексте.
console.log(globalThis); // window (в браузере) или global (в Node.js)
В этом примере мы используем функцию `globalThis` для получения доступа к глобальному объекту.

Ожидаемые функции

1. Деструктуризация в циклах

Деструктуризация в циклах — функция, которая позволяет деструктурировать объекты в циклах.

2. Статическая типизация

Статическая типизация — функция, которая позволяет добавлять статическую типизацию в JavaScript.

Заключение

В этой статье мы рассмотрели 7 новых функций JavaScript, которые уже доступны для использования, и 2 функции, которых мы все еще ждем. Эти новые функции могут помочь вам решить проблемы, которые вы сталкиваетесь при разработке веб-приложений. Итак, не стесняйтесь попробовать их и увидеть, как они могут улучшить вашу работу. Попробуйте использовать эти новые функции в своих проектах и откройте для себя новые возможности!