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
Prefácio
O ano era 1995. Estava sendo criada uma nova plataforma de comunicação chamada mIRC (Internet Relay Chat Client), e a Microsoft acabava de lançar seu próprio navegador, o Internet Explorer. Ao mesmo tempo, surgia uma nova linguagem, ainda pouco compreendida e, até certo ponto, ridicularizada. Originalmente chamada de Mocha, posteriormente teve seu nome modificado para LiveScript e, por fim, ganhou a imortalidade como JavaScript.
Passadas mais de duas décadas desde o seu surgimento, é praticamente impossível imaginar a internet sem ela. E como é gratificante trabalhar com uma linguagem que evolui dessa maneira! O JavaScript hoje tem um papel fundamental na evolução da web.
O lançamento do ECMAScript 6, a mais recente atualização da especificação, traz uma série de novas features à linguagem. Recursos estes que vão influenciar diretamente no modo como desenvolvemos em JavaScript.
E, assim, o JS continuará sua evolução constante, como tem feito desde sua origem. Em consequência, você precisará evoluir em conjunto. Lembre-se sempre disso, pois a evolução está cada vez mais rápida.
Neste livro, Diego aborda de forma brilhante as principais mudanças que a ECMAScript 6 trouxe à linguagem. Ele não apresenta somente o conceito, mas sim como aplicá-lo na prática e em situações que todos nós vivemos no dia a dia.
Nós dois estivemos no Vale do Silício durante a iMasters DevTrip 2016, visitando algumas das principais empresas que são referência para nós desenvolvedores. Lá, ficou claro que a grande diferença entre os países não é técnica, mas sim a sua cultura de colaboração.
Lembre-se sempre de que o JavaScript é um código aberto, sem controle centralizado de corporações e de fácil aprendizado. Busque trabalhar em colaboração, integrando-se à comunidade e respeitando as características dessa linguagem criada por Brandan Eich, em 1995.
Conhecimento precisa ser compartilhado, e é exatamente isso que Diego faz neste livro. Parabéns, meu caro!
A você, que segura agora este exemplar, uma excelente leitura. Estude bastante estas páginas e, principalmente, espalhe o seu conhecimento.
Então, vamos começar?
Tiago Baeta — Fundador do iMasters — http://www.imasters.com.br
Introdução
Seja muito bem-vindo a uma nova era na história do JavaScript! Há muitos anos que a linguagem JavaScript não ganhava modificações e funcionalidades novas relevantes, mas isso mudou com a chegada da nova versão da especificação ECMAScript.
Nos últimos cinco anos, o JavaScript ganhou muita força com o "grande boom" do ecossistema Node.js e NPM. A flexibilidade da linguagem tem sido usada a favor não somente do lado do cliente, mas também do lado do servidor. Tudo isso fez com que a comunidade reconhecesse a força da linguagem e finalmente a levasse a sério.
UM BREVE RESUMO DO JAVASCRIPT NA ATUALIDADE
No início da década de 90, começaram a ser desenvolvidas as primeiras aplicações web. A internet estava tomando forma e as páginas começavam a ficar cada vez mais complexas. No entanto, a maior parte dos usuários que tinham acesso à internet utilizava conexões lentíssimas de, no máximo, 28.8 kbps. Você consegue se imaginar usando uma internet dessas hoje em dia? Nem eu.
Como você deve saber, essa velocidade de conexão não estava conseguindo acompanhar a evolução das aplicações web. Elas ficavam maiores e mais complexas, e a velocidade de acesso não conseguia lidar com isso.
Foi nesta época que o JavaScript — também conhecido por nomes como Mocha, LiveScript, JScript e ECMAScript —, uma das linguagens de programação mais famosas do mundo, nasceu. Ela foi criada em 1995 por um engenheiro da Netscape, chamado Brendan Eich. Originalmente batizada de LiveScript, ela foi lançada pela primeira vez com o Netscape 2, no início do ano de 1996, e prometia ajudar os navegadores dos usuários a acompanhar a evolução das aplicações web.
E para tentar embalar no sucesso na época da linguagem de programação Java, da Sun Microsystems (hoje pertencente a Oracle, que a comprou em 2009), a linguagem mudou o seu nome para JavaScript, mesmo tendo muito pouco em comum com a linguagem Java (e isso causa muita confusão até hoje!). Por este e mais tantos outros motivos, o JavaScript sempre foi conhecido por ser a linguagem de programação mais incompreendida do mundo.
Embora ela tenha sido ridicularizada por muitos anos por ser uma “linguagem de brincadeira”, hoje, praticamente após 20 anos do seu lançamento, ela cresceu absurdamente na comunidade de desenvolvedores, tornou-se mais robusta, poderosa e é 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.
A QUEM SE DESTINA ESTE LIVRO
Este livro é destinado aos desenvolvedores web que tenham, pelo menos, conhecimentos básicos da linguagem JavaScript. A seguir, seguem os principais tópicos que é necessário ter pelo menos um conhecimento básico para melhor aproveitamento do conteúdo: Declaração de funções e variáveis; Estrutura de dados: objetos e arrays; Funções anônimas e de callback; Escopos; Herança por prototipagem.
Ter domínio desses conceitos, mesmo que seja somente o básico, será essencial. Ao longo do livro, tomei o cuidado de fazer revisões nos principais tópicos da linguagem, mas é imprescindível ter um conhecimento prévio.
Caso você ainda não esteja totalmente seguro sobre os seus conhecimentos nestes tópicos, procure ler alguns livros e artigos, assistir videoaulas, fazer alguns cursos e pequenos experimentos com a linguagem. A internet está recheada de material gratuito de altíssima qualidade sobre o assunto. Dê uma olhada no capítulo de recomendações para ver algumas dicas legais.
Uma vez que você conheça pelo o básico destes tópicos, estará pronto para seguir em frente!
O QUE VOU APRENDER NESTE LIVRO?
Neste livro, abordaremos as principais mudanças que a nova versão da especificação trouxe para a linguagem. Aprenderemos 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.
COMO DEVO ESTUDAR COM ESTE LIVRO?
Este livro foi estruturado de modo que os tópicos apresentados se complementem e se tornem gradualmente mais complexos ao decorrer da leitura. Em todos eles, serão apresentados diversos conceitos, sempre apoiados por códigos contextualizados em casos de uso reais, seguindo as boas práticas. Você notará não somente a evolução dos conceitos, mas também a dos códigos apresentados à medida que a leitura for seguindo.
Como acredito que somente com a prática que aprendemos a programar e fixar o conhecimento, no repositório deste livro no GitHub, você encontrará uma série de exercícios elaborados pensando na prática dos tópicos apresentados. Junto aos exercícios, você também encontrará o gabarito comentado. No final do livro, também há uma série de recomendações de livros, artigos e cursos para que você se aprofunde nos estudos.
Consulte o livro sempre que surgirem dúvidas e entre contato sempre que sentir necessidade. Leia e releia até compreender os conceitos. Não tenha pressa.
Em caso de dúvidas, estarei sempre a disposição. Não deixe de comentar e participar das discussões sobre o livro e os exercícios no site oficial e nos nossos canais de comunicação! O site e o repositório continuarão sendo atualizados com novos exercícios, artigos, notícias e projetos de exemplo. Vamos aprender juntos! E o mais importante: nunca deixe de praticar!
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
Título: ECMAScript 6: Entre de cabeça no futuro do JavaScript
Nome do Autor: Diego Martins de Pinho
Gênero: Informática
Ano de Lançamento: 2017
Editora: Casa do Código
Nº de Páginas/Horas: 188
Tamanho: 5 Mb´s
Formato: PDF
Idioma: Português