ECMAScript 2017 (ES8) был завершен в июне 2017 года. В этой статье будут рассмотрены некоторые из основных функций, которые могут сделать ваш код более чистым и легким для написания. Итак, приступим!

Object.values ​​()

Этот метод вернет массив значений перечислимых свойств данного объекта (в том же порядке, что и цикл for-in). Это аналог Object.keys (), который был доступен с момента выпуска ES5. Object.values ​​() также может преобразовывать строку в объект, чтобы она превратилась в массив. Это то же самое, что использовать .spit («») в строке.

Поскольку массивы являются объектами, это также будет работать с массивами. Он будет рассматривать индексы как ключи, а значения как элементы в массиве (['a', 'b', 'c'] → {0: 'a', 1: 'b', 2: 'c'}) . Я не уверен, зачем вам это делать, ведь он просто вернет то же самое, но это работает.

Object.entries ()

Этот метод возвращает массив, содержащий пары ключ-значение данного объекта в виде массива (в том же порядке, что и Object.values ​​()).

String.prototype.padEnd ()

Метод padEnd () удлиняет текущую строку до заданной длины. Если длина исходной строки не так велика, как вы хотите, padEnd () добавит пробелы в конец, чтобы сделать строку желаемой длины. Вы также можете «дополнить» строку другой строкой, которую вы вводите в качестве второго параметра, который будет повторяться до тех пор, пока не будет достигнута желаемая длина.

String.prototype.padStart ()

Это то же самое, что и padEnd, но строка дополняется спереди.

Object.getOwnPropertyDescriptors

Этот метод возвращает все дескрипторы свойств данного объекта. Дескриптор собственного свойства объекта находится непосредственно в объекте, а не в его прототипе. Название метода довольно информативное, но если вы не уверены в возможных дескрипторах, они перечислены ниже.

value - значение, связанное со свойством (только дескрипторы данных).

Writable - true тогда и только тогда, когда значение, связанное со свойством, может быть изменено (только для дескрипторов данных).

get - функция, которая служит получателем для свойства, или undefined, если получателя нет (только дескрипторы доступа).

set - функция, которая служит установщиком для свойства, или undefined, если установщика нет (только дескрипторы доступа).

configurable - true тогда и только тогда, когда тип этого дескриптора свойства может быть изменен и если свойство может быть удалено из соответствующего объекта.

enumerable - true тогда и только тогда, когда это свойство появляется во время перечисления свойств соответствующего объекта.

Конечные запятые в списках параметров функций

Завершающие запятые - это запятые в конце последнего элемента, параметра или свойства кода Javascript. Если вы хотите добавить что-то еще, то эта запятая уже будет для вас. Возможность планировать наперед может помочь предотвратить ошибки. Завершающие запятые всегда были разрешены для массивов и разрешены в объектных литералах, начиная с ECMAScript 5. Они будут разрешены в списках параметров функций в ES8!

Асинхронные функции

Async / await - это новый способ написания асинхронного кода. Объявление асинхронной функции определяет асинхронную функцию, которая возвращает объект AsyncFunction. Вы также можете определять асинхронные функции, используя выражение асинхронной функции. Асинхронные функции возвращают обещание, которое будет разрешено или отклонено с неперехваченным исключением, сгенерированным внутри асинхронной функции.

В отличие от операторов асинхронных функций, в выражениях асинхронных функций можно не указывать имя функции, чтобы сделать ее анонимной, и их можно использовать как IIFE (выражение с немедленным вызовом функции), которое запускается сразу после его определения.

Конструктор AsyncFunction создает новый объект асинхронной функции. В JavaScript каждая асинхронная функция на самом деле является объектом AsyncFunction.

Оператор await используется для ожидания обещания и может использоваться только внутри асинхронной функции. Выражение await заставляет выполнение асинхронной функции приостанавливаться до тех пор, пока обещание не будет разрешено (выполнено или отклонено), а затем возобновит выполнение асинхронной функции после выполнения. При возобновлении значение выражения ожидания - это значение выполненного обещания. Если обещание отклонено, выражение ожидания выбрасывает отклоненное значение. Если значение выражения, следующего за оператором await, не является обещанием, оно преобразуется в разрешенное обещание. Важно понимать, что await не приостанавливает выполнение каких-либо функций за пределами async.

Поскольку delayedFunc3 () и delayedFunc5 () являются асинхронными, они не препятствуют немедленному выполнению второй console.log (). Все 4 функции выполняются в указанном порядке и возвращаются, когда они готовы. Вот каков будет результат:

Отличная работа! Вы справились! Ознакомьтесь с документацией, чтобы подробно узнать о каждой новой функции и попробовать каждую из них самостоятельно.

Не стесняйтесь связаться со мной по адресу linkedin.com/in/rashaun-warner/ или [email protected].