ECMAScript 2017, также известный как ES8, является восьмой редакцией стандарта ECMAScript. Он был выпущен в июне 2017 года и включает несколько новых функций и улучшений по сравнению с предшественником ES6/2015. В этой статье мы обсудим возможности ES8 с примерами кода.

Заполнение строки

ES8 представил два новых метода заполнения строк: padStart и padEnd. Эти методы добавляют пробел в начало или конец строки, чтобы сделать ее определенной длины. Вот пример:

let str = 'hello';
console.log(str.padStart(10)); // "     hello"
console.log(str.padEnd(10)); // "hello     "

Object.values() и Object.entries()

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

const obj = { a: 1, b: 2, c: 3 };
console.log(Object.values(obj)); // [1, 2, 3]
console.log(Object.entries(obj)); // [["a", 1], ["b", 2], ["c", 3]]

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

ES8 позволяет использовать синтаксис async/await для обработки асинхронных операций. Это позволяет получить более чистый и читаемый код, чем использование обратных вызовов или промисов. Вот пример:

async function getData() {
  const response = await fetch('https://jsonplaceholder.typicode.com/posts');
  const data = await response.json();
  console.log(data);
}

Общая память и атомарность

ES8 представила новую общую память и API-интерфейс atomics, который позволяет использовать многопоточность на низком уровне. Это позволяет быстрее и эффективнее выполнять определенные задачи. Вот пример:

const buffer = new SharedArrayBuffer(16);
const view = new Int32Array(buffer);
Atomics.store(view, 0, 10);
Atomics.add(view, 0, 5);
console.log(Atomics.load(view, 0)); // 15

Завершающие запятые в параметрах функции

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

function add(a, b, c,) {
  return a + b + c;
}
console.log(add(1, 2, 3)); // 6

Заключение

В заключение следует отметить, что ES8 привнес в JavaScript несколько полезных функций и улучшений, которые сделали его более эффективным и удобным в работе. Добавление заполнения строк, значений объектов и записей, асинхронных функций, разделяемой памяти и атомарных чисел, а также запятых в конце параметров функций помогло разработчикам писать более чистый и читаемый код.