JavaScript ранее использовался в основном для улучшения взаимодействия пользователя с веб-страницей. Однако в последнее время он широко используется при разработке полного стека веб-приложений и мобильных приложений. Основное преимущество заключается в том, что все современные веб-браузеры и операционные системы поддерживают JavaScript.

Javascript ES6 существует уже несколько лет, и он позволяет нам умно писать код, делая его более современным и читабельным.

Теперь в 2020 году ES6 добавил 10 новых функций. Давайте изучим изменения.

1. BigInt

BigInt — это одна из новых функций в типе данных Number в JS. На самом деле это позволяет разработчикам иметь гораздо большее целочисленное представление в своем JS-коде для обработки и обработки данных. В настоящее время максимальное число, которое вы можете сохранить как целое число в JavaScript, составляет Number.MAX_SAFE_INTEGER, но BigInt фактически позволяет вам пойти еще дальше.

Это позволяет нам выполнять обычные математические вычисления, как и раньше, но в конце целого числа вы ставите «n» в качестве суффикса. Это 'n' означает, что это BigInt и JS-движок должен обрабатывать его по-разному.

2. Динамический импорт

Динамический импорт представляет собой новую функциональную форму импорта, которая открывает новые возможности по сравнению со статическим импортом. Это дает нам возможность динамически импортировать файлы JS как модули в наше приложение изначально. Поскольку он возвращает промис, можно использовать async/await вместо стиля обратного вызова на основе then. Вы также можете условно загрузить код в блок if-else, если хотите.

Хорошо то, что вы фактически импортируете модуль, и поэтому он никогда не загрязняет глобальное пространство имен.

3. Нулевое слияние

Нулевой оператор объединения (??) — это логический оператор, который возвращает свой правый операнд, когда его левый операнд равен нулю или не определен, и в противном случае возвращает свой левый операнд.

В JavaScript многие значения являются ложными, например, пустые строки, число 0, неопределенное значение, ноль, ложное NaN и так далее.

Однако во многих случаях вы можете захотеть проверить, является ли переменная нулевой — то есть является ли она либо неопределенной, либо нулевой, например, когда переменная может иметь пустую строку или даже ложное значение, вы будете использовать новый нулевой оператор объединения, ??.

Важное примечание: если мы объединяем логические операторы «&&» или «||» с «??», это приводит к синтаксическим ошибкам.

4. Необязательная цепочка

Необязательный оператор цепочки (?.) можно использовать так же, как оператор точки (.), но он обеспечивает гораздо менее подверженный ошибкам и легко читаемый код. Если мы укажем на несуществующее свойство, оно просто вернет undefined, а не ошибку.

5. String.matchAll()

matchAll – это новый метод, добавленный в прототип строки, связанный с регулярными выражениями. Это возвращает итератор, который возвращает все совпавшие группы одну за другой.

6. Promise.allSettled

Метод Promise.allSelected принимает массив промисов и разрешается только тогда, когда все они урегулированы — разрешены или отклонены. На нативном уровне он ожидает выполнения всех промисов, которые раньше были недоступны.

7. глобальное

Скажем, наш код работает на таких платформах, как браузер, Node, веб-воркеры. Довольно сложно использовать «window» для браузера, «global» для Node, «self» для платформы веб-воркеров.

Чтобы сделать разработку независимой от платформы, «globalThis» всегда ссылается на глобальный объект и дает нам возможность хранить или извлекать данные определенным образом.

8. Экспорт пространства имен модуля

В модулях JavaScript уже можно было использовать синтаксис импорта, однако до сих пор не существовало симметричного синтаксиса экспорта.

9. Четко определенный порядок for-in

В спецификации ECMA не указано, в каком порядке следует запускать (x в y). Несмотря на то, что до сих пор браузеры самостоятельно реализовывали предсказуемый порядок, он был официально стандартизирован в ES2020.

10. Импорт.meta

Объект import.meta был создан реализацией ECMAScript с нулевым прототипом. Вы можете получить доступ к метаинформации о модуле с помощью файла import. метаобъект.

Он возвращает объект со свойством url, указывающим базовый URL-адрес модуля. Это будет либо URL-адрес, из которого был получен скрипт (для внешних скриптов), либо базовый URL-адрес содержащего документа (для встроенных скриптов).

Вывод:

JavaScript — один из самых гибких языков программирования. Эти дополнительные функции помогут разработчикам писать более читабельный и производительный код.