ECMAScript 6 Entre de cabeça no futuro do JavaScript
Diego Martins de PinhoConteúdo
Nos últimos anos, a linguagem JavaScript cresceu bastante na comunidade de desenvolvedores, tornando-se mais robusta, poderosa e sendo usada em uma infinidade de aplicações de alto nível, tanto no front-end quanto no back-end das aplicações. Ela é a tecnologia por trás de ferramentas, frameworks e bibliotecas consagradas no mercado, tais como: Angular, Ember, React, Backbone, jQuery, Grunt. A lista é enorme. Atualmente, é essencial que um profissional de TI tenha domínio desta tecnologia, tanto para aplicações web, aplicativos mobile e/ou desktop. É exatamente para isto que este livro foi escrito. Para que você seja capaz de entender todas as mudanças que vieram com o ECMAScript 6, aprimorar suas habilidades como desenvolvedor e se destacar no mercado de trabalho que hoje é tão concorrido.
Neste livro, Diego Pinho aborda as principais mudanças que a nova versão da especificação trouxe para a linguagem. Você vai aprender não somente o conceito, mas como aplicá-lo na prática em situações reais. Dentre elas, estão:
* Novas maneiras de iterar objetos e coleções
* Declaração de variáveis com let e const
* Melhorias em funções com arrow functions
* As novas de estruturas de Map, WeakMap, Set e WeakSet
* Modularização e classes
* Geradores e símbolos
* E muito mais
Edição atualizada: a evolução do JavaScript não para!
Desde a primeira edição deste livro, que foi lançada em março de 2017, o TC39 — comitê da ECMA Internacional responsável por manter a ECMA-262, especificação que define as características e comportamentos da linguagem JavaScript — lançou mais duas versões da especificação, o ECMAScript 2016 (ES7) e o ECMAScript 2017 (ES8). Ambas as especificações são relativamente menores em relação à versão do ECMAScript 2015 (ES6), mas isso não significa que as funcionalidades adicionadas sejam inúteis, muito pelo contrário, são extremamente importantes e são a evolução de mecanismos trazidos na versão de 2015, como é o caso do async/await.
Para que os leitores continuem evoluindo junto com a linguagem, adicionei dois capítulos extras a esta obra. No primeiro capítulo, vamos explorar com detalhes as funcionalidades do ES7. Lá falaremos sobre o novo operador exponencial — representado por dois asteriscos seguidos (**) — e o Array.prototype.includes.
No segundo capítulo, falaremos sobre o ES8. Esta edição acabou compensando a anterior e trouxe ainda mais ferramentas para o desenvolvedor JavaScript. Lá falaremos sobre os métodos Object.values e Object.entries, padStart e padEnd, Object.getOwnPropertyDescriptors e o poderoso mecanismo de async/await.
E não para por aí. O comitê já está trabalhando no ESNext (nome utilizado para se referir à próxima versão da ECMAScript). Com o tempo, mais funcionalidades serão adicionadas e precisaremos continuar estudando para nos manter atualizados. O JavaScript está em constante evolução, mas com este livro, você também estará.
Sumário
- 1 ECMAScript x JavaScript
- 1.1 Implementações da especificação
- 1.2 Breve histórico
- 1.3 Futuro
- 2 Precisamos falar sobre o Babel
- 2.1 Outras ferramentas
- 3 Métodos auxiliares para Array
- 3.1 A maneira tradicional de iterar um Array
- 3.2 forEach
- 3.3 map
- 3.4 filter
- 3.5 find
- 3.6 every
- 3.7 some
- 3.8 reduce
- 4 Iteração com iteradores e iteráveis
- 4.1 Iteradores
- 4.2 Iteráveis
- 4.3 Iteradores e iteráveis na prática
- 5 Iteração com o laço for...of
- 5.1 Diferenças entre o for...of e for...in
- 5.2 break e continue
- 5.3 Voltando para o Chapéu Seletor
- 6 As novas estruturas de Map e WeakMap
- 6.1 Map
- 6.2 WeakMap
- 6.3 Administrando uma biblioteca
- 7 Listas sem repetições com Sets e WeakSets
- 7.1 Set
- 7.2 WeakSet
- 8 Declaração de variáveis com const e let
- 8.1 Constantes com const
- 8.2 let é o novo var
- 8.3 Qual a diferença, no final das contas?
- 9 Manipulação de textos com template strings
- 9.1 Template strings simples
- 9.2 Template strings marcado
- 10 Arrow functions
- 10.1 São menos verbosas
- 10.2 O contexto de execução é diferente
- 11 Melhorias em objetos literais
- 11.1 Declaração de propriedades
- 11.2 Índices de propriedades computadas
- 11.3 Objetos literais x JSON
- 12 Parâmetros predefinidos em funções
- 12.1 Atribuindo valores padrões
- 12.2 Valores undefined
- 12.3 Referenciando outros valores padrões
- 12.4 Referenciando variáveis internas
- 12.5 Utilizando funções como valores padrões
- 12.6 Tornando parâmetros obrigatórios
- 13 Parâmetros infinitos com operador Rest
- 13.1 Entenda o que arguments faz
- 13.2 Arguments X Operador Rest
- 13.3 Particularidades do operador Rest
- 13.4 Podemos utilizar em conjunto com parâmetros “fixos”
- 14 Expansão com o operador Spread
- 14.1 Fazendo compras com o Spread
- 14.2 Adicionando itens a um Array
- 14.3 Operador Spread em chamadas de funções
- 14.4 Operador Rest x Operador Spread
- 15 Desestruturamento de Arrays e Objetos
- 15.1 Rotulando propriedades
- 15.2 Desestruturamento de vários objetos
- 15.3 Desestruturamento em retorno de chamadas de métodos
- 15.4 Desestruturamento de Arrays
- 15.5 Desestruturando Arrays — Parte 2
- 16 Modelando com classes
- 16.1 Utilize classes do ES6
- 16.2 Estendendo classes
- 16.3 Hoisting em classes
- 16.4 Declaração por meio de expressões
- 16.5 Métodos estáticos
- 16.6 Atributos privados com WeakMap
- 16.7 Últimas considerações
- 17 Módulos
- 17.1 CommonJS x AMD
- 17.2 Importar e exportar módulos
- 17.3 Exportando classes
- 17.4 Rótulos em módulos
- 17.5 Últimas considerações
- 18 Funções geradoras
- 18.1 O que são funções geradoras?
- 18.2 Iterações com geradores
- 18.3 Entendendo o Symbol.iterator
- 18.4 Delegação de funções geradoras
- 19 Operações assíncronas com promises
- 19.1 O que são promises?
- 19.2 Os estados das promises
- 19.3 O esqueleto de uma promise
- 19.4 Operações assíncronas
- 19.5 Aninhamento de then e catch
- 19.6 Como lidar com erros inesperados
- 20 Metaprogramação com proxies
- 20.1 O que é metaprogramação?
- 20.2 Voltando para os proxies
- 20.3 Validações de inputs com proxies e traps
- 20.4 Desativando um proxy
- 20.5 Últimas considerações
- 21 Um futuro brilhante para o JavaScript
- 22 Recomendações
- 23 Referências
Autor
Diego Martins de Pinho
Bacharel em Ciência da Computação pela PUC-SP e MBA em Gestão da Tecnologia da Informação pela FIAP. É aficionado não somente por tecnologia, mas também por empreendedorismo e gestão de negócios. Trabalha com desenvolvimento web desde 2013 e sempre busca tempo para continuar aprendendo e para disseminar o conhecimento.
Dados do produto
- Número de páginas:
- 227
- ISBN:
- 978-85-5519-258-6
- Data publicação:
- 03/2017. Atualizado em 05/2018.