ES8, o que vem por aí

Guilherme Bayer
3 min readMar 1, 2017

Irei apresentar nesse post, um pouco sobre as propostas que se encontram em estágio 4 e que serão ou já foram implementadas no ECMAScript 2017.

O estágio 4, trata-se do último estágio em que as propostas são submetidas no processo do TC39, time que atualmente tem a função de manter e implementar novas funcionalidades ao Javascript.

Nesse estágio, encontram-se as propostas que serão implementadas ou que já foram, como por exemplo o exponentiation operator implementado na versão 7.

Abaixo, você encontra um pequeno resumo sobre o que é cada proposta dessa nova versão:

Shared memory and atomics

Trata-se de uma proposta inicial de Lars T. Hansen, que acabou entrando no estágio 4 recentemente no mês de janeiro, e que visa compartilhar os recursos entre os workers com o SharedArrayBuffer, eu particulamente não conheço muito sobre esse recurso, mas aqui você encontra um artigo bem detalhado.

Async Functions

Apresentada por Brian Terlson, essa proposta vem empolgando bastante o pessoal, trazendo uma maneira mais simples de se trabalhar com execuções assíncronas no Javascript, um pouco semelhante ao já implementado generators. porém uma outra proposta pretende trazer um iterador, o Async Iterator que se encontra em estágio 3.

let url = 'https://api.github.com/users/';
async function retrieveUser(username) {
let response = await fetch(`${url}${username}`);
let data = await response.json();
return data;
}
retrieveUser('guuibayer');

Com ela podemos ter uma função que espera uma outra operação síncrona apenas utilizando duas novas palavras, o async e await, essa feature já se encontra disponível em alguns browers.

String padding

A proposta de Jordan Harband e Rick Waldron trata-se de dois novos métodos chamados padStart e padEnd.

let foo = 'F';
foo.padEnd(2, 'o'); // Foo

Utilizando padStart , da pra fazer aquele trechinho bem conhecido, haha.

let bar = ' Batman!';
bar.padStart(5, 'NaN'); // NaNNaNNaNNaNNaN Batman!

Brincadeiras a parte, há diversas coisas a se fazer, vai da sua criatividade para a utilização do método.

Object.values/Object.entries

A proposta de Jordan Harband, é a implementação de dois novos métodos para Object, values() e entries().

No caso de values() ele irá retornar um array com os valores das propriedades do objeto que lhe foi informado.

Object.values('Foo'); // ["F", "o", "o"]

entries(), irá retornar um conjunto de arrays, que conterá o valor da propriedade e sua posição.

Object.entries('Foo'); // [["0", "F"], ["1", "o"], ["2", "o"]]

Object.getOwnPropertyDescriptors

Proposta de Jordan Harband e Andrea Giammarchi, trás um objeto para cada propriedade do argumento passado, que contém algumas opções.

Object.getOwnPropertyDescriptors('Foo');{
{
configurable: false,
enumerable: true,
value: "F",
writable: false
},
{
configurable: false,
enumerable: true,
value: "o",
writable: false
},
{
configurable: false,
enumerable: true,
value: "o",
writable: false
}
};

Apenas essas?

Não, há outras propostas que atualmente se encontram em estágio 3, e poderiam entrar para a versão 8 do Ecmascript, são elas:

Aqui você encontra a tabela completa com todas propostas ativas.

E porque devo saber sobre isso?

Notamos que a cada ano uma nova versão vem sendo lançada, mesmo que com poucas novas implementações é de suma importância acompanhar o desenvolvimento da linguagem e também ajudar a evolui-la.

--

--