ECMAScript 2016, также известный как ES7, — это седьмая версия стандарта ECMAScript для JavaScript. Он был выпущен в июне 2016 года и представил несколько новых функций, которые помогли сделать JavaScript более выразительным и эффективным. В этой статье мы рассмотрим некоторые ключевые функции ECMAScript 2016 и приведем примеры их использования.

Массив.прототип.включает()

Метод includes() является новым дополнением к объекту-прототипу Array в ECMAScript 2016. Он возвращает логическое значение, указывающее, содержит ли массив определенное значение, а не возвращает индекс этого значения, как это делает indexOf(). Вот пример:

const arr = [1, 2, 3, 4, 5];
console.log(arr.includes(3)); // true
console.log(arr.includes(6)); // false

Оператор возведения в степень

Оператор возведения в степень ** позволяет вычислить результат возведения числа в определенную степень. Это сокращение для использования метода Math.pow(). Вот пример:

const base = 2;
const exponent = 3;
console.log(base ** exponent); // 8

Object.values() и Object.entries()

ECMAScript 2016 представил два новых метода работы с объектами: Object.values() и Object.entries(). Object.values() возвращает массив значений собственных перечисляемых свойств объекта. Object.entries() возвращает массив собственных перечисляемых пар ключ-значение объекта. Вот некоторые примеры:

const obj = { x: 1, y: 2, z: 3 };
console.log(Object.values(obj)); // [1, 2, 3]
console.log(Object.entries(obj)); // [["x", 1], ["y", 2], ["z", 3]]

Асинхронный/ожидание

Async/await — это новый способ написания асинхронного кода в ECMAScript 2016. Он обеспечивает более чистый и читаемый синтаксис для работы с промисами. Ключевое слово async используется для определения функции как асинхронной, а ключевое слово await используется для ожидания разрешения промиса перед продолжением. Вот пример:

async function getData() {
  const response = await fetch('https://jsonplaceholder.typicode.com/todos/1');
  const data = await response.json();
  return data;
}

getData().then(data => console.log(data));

Array.prototype.flat() и Array.prototype.flatMap()

Методы flat() и flatMap() были представлены в ECMAScript 2019 (ES10), но были предложены как часть ECMAScript 2016. Метод flat() сглаживает вложенные массивы в одномерный массив. Метод flatMap() сочетает в себе функции map() и flat(). Вот некоторые примеры:

const arr1 = [1, 2, [3, 4]];
console.log(arr1.flat()); // [1, 2, 3, 4]

const arr2 = [1, 2, 3];
console.log(arr2.flatMap(x => [x * 2])); // [2, 4, 6]

Заключение

ECMAScript 2016 представил несколько новых мощных функций языка JavaScript. Метод Array.prototype.includes(), оператор возведения в степень, а также методы Object.values() и Object.entries() упрощают работу с массивами и объектами. Async/await упрощает асинхронное программирование, а Array.prototype.flat() и Array.prototype.flatMap() обеспечивают мощный массив