Sitemap
Isaac Meira

Isaac Meira

Desenvolvedor, em constante evolução, buscando pelas melhores práticas de desenvolvimento de software.

Javascript: Novidades do ES2019 (ES10).

5 min readAug 6, 2019

--

Press enter or click to view image in full size
JavaScript sendo codado no VsCode

É verdade que, JavaScript com certeza é uma grande superpotência da programação, a linguagem é amplamente usada em vários ( Se não todos ) os setores possíveis, até mesmo para criação de softwares desktop com o uso do Electron por exemplo ( Prometo fazer um post depois sobre ).

Enfim, com isso, recentemente houve a atualização para o ES2019, e com ela, várias funcionalidades foram implementadas. Neste post, estarei mostrando algumas delas, e alguns modelos de uso.

As alterações mais relevantes foram:

  • Array.flat( ) e array.flatMap( )
  • Object.fromEntries
  • String.trimStart( ) e string.trimEnd( )
  • Optional catch brinding
  • Function.toString( )
  • Symbol.description
  • Update na função JSON.Stringfy()
  • Melhora na estabilidade do Array.Sort
  • Melhorias no JSON

Dito isso vamos nessa ! 😄

Array.flat( )

Press enter or click to view image in full size
Função arr.flat( )

O método cria um array concatenado de todos os outros sub-arrays nele inseridos, também é possível definir a profundidade na qual você deseja concatenar. Isso é feito através da repetição da chamada da função, também é possível usar o parâmetro Infinity, para retornar todos os elementos.

Get Isaac Meira’s stories in your inbox

Join Medium for free to get updates from this writer.

Vale lembrar que caso haja alguma lacuna, esta, é excluída.

Array.flatMap( )

Press enter or click to view image in full size
Função arr.flatMap( )

Mapeia toda o array e retorna um novo array ( tal como o .map( ) faz. ), nesse novo array nivela-se o resultado, mostrando bastante útil na questão de mesclar multiplas sentenças .

Object.fromEntries( )

Press enter or click to view image in full size
Object.fromEntries( )

Essa função pega um array com objeto de valores e retorna em um objeto apenas, esse método só aceita um array ou um map.

String.trimStart( ) e String.trimEnd( )

Press enter or click to view image in full size
Trim e variações

Além do string.trim() que remove os espaços em branco dos dois lados, foi adicionado o .trimEnd( ) que remove o espaço em branco apenas do final, e o .trimStart( ) que remove o espaço em branco apenas do começo.

Optional Catch Binding

Press enter or click to view image in full size
Try / Catch

Agora permite aos desenvolvedores, usar um try/catch sem passar parâmetros.

function.toString( )

Press enter or click to view image in full size
Retornando o código de uma função

Retorna uma string representando o código fonte da função. Agora, espaços em branco, novas linhas e comentários serão removidos quando você fizer isso será retornado o código fonte original

Symbol.description( )

Press enter or click to view image in full size
Retornando as propriedades do símbolo

Agora é possível retornar a propriedade de um símbolo sem usar a função .toString( ). Ou seja, sem precisar convertê-lo.

Update no JSON.Stringfy()

Press enter or click to view image in full size
Mudança JSON.stringfy( )

Foi adicionado o update para prevenir que a função retorne caracteres mal formados.

Melhoria na estabilidade do Array.sort( )

Press enter or click to view image in full size

Anteriormente, o V8 (Engine na qual o JS roda) usava uma maneira de ordenação, que, apesar de ser uma das mais rápidas, era bem instável (QuickSort). Para matrizes com mais de 10 elementos.

A partir do V8 v7.0 / Chrome 70, o V8 usa o algoritmo TimSort.

O único mecanismo principal do JavaScript que utiliza essa implementação de ordenação é o Chakra, que usa o QuickSort para matrizes com mais de 512 elementos (e ordenação de inserção estável para qualquer outra coisa).

Você pode saber mais Aqui.

Melhorias no JSON

Press enter or click to view image in full size

A Sintaxe do JSON é definida pelo ECMA-404 e permanentemente corrigida pelo RFC-7159m permitindo que o separador de linha (\u2028) e o separador de parágrafo (\u2029) sejam exibidos corretamente e sem retornar erro.

Você pode saber mais neste link.

Bom é isso, espero de coração que tenha sido proveitoso e que de alguma forma tenha ajudado vocês dev´s na busca por conhecimento, como achei poucas postagens relevantes em português, decidi fazer o post com inspiração de outras duas postagens, você pode seguí-las ao fim da página.

Além da documentação oficial do ECMA : http://www.ecma-international.org/ecma-262/10.0/index.html

Muito Obrigado a vocês pela leitura, se gostaram, compartilhe o conhecimento ! Nós dev´s devemos nos ajudar, e ajudar a difundir a comunidade, pois o conhecimento é nosso poder, e não podemos deixar que diminua.

“ A coisa mais indispensável a um homem é reconhecer o uso que deve fazer do seu próprio conhecimento. — Platão”

Qualquer dúvida ou crítica, pode me contatar por email, ficarei honrado em responder-lhes : oi@isaacmeira.dev

Também tenho um site pessoal onde existe uma newsletter, caso você não queira perder nenhum conteúdo meu : https://www.isaacmeira.dev

Um abraço e até o próximo ! 😉

--

--

Isaac Meira
Isaac Meira

Written by Isaac Meira

Desenvolvedor, em constante evolução, buscando pelas melhores práticas de desenvolvimento de software.