




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
apostila explicando um pouco do es6
Tipologia: Slides
Oferta por tempo limitado
Compartilhado em 30/07/2019
4.3
(4)1 documento
1 / 200
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Em oferta
Impresso e PDF: 978-85-5519-258-
Você pode discutir sobre este livro no Fórum da Casa do
Código: http://forum.casadocodigo.com.br/.
Caso você deseje submeter alguma errata ou sugestão, acesse
http://erratas.casadocodigo.com.br.
Primeiramente, gostaria de agradecer muito à minha família que
sempre me apoiou, motivou e educou a buscar ser melhor sempre.
Também gostaria de agradecer à minha namorada, Bruna Freitas,
que me cobrou todos os dias a continuar escrevendo até terminar o
livro. Sou muito grato aos meus amigos e mentores profissionais,
Fabio Nishihara e Marcelo Suzumura, pela confiança no meu
trabalho e por todos os ensinamentos dados, tanto na área técnica
quanto na de negócios.
Também gostaria de agradecer à editora Casa do Código por me
dar esta oportunidade de compartilhar este conhecimento com
vocês. Em especial, um agradecimento aos meus editores: Adriano
Almeida e Vivian Matsui, que desde o início sempre foram muito
atenciosos e prestativos.
E por fim, mas não menos importante, gostaria de agradecer a
você que está lendo! Obrigado pela confiança! Espero que este livro
o auxilie a se tornar um desenvolvedor ainda melhor!
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 srcem. 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 Brendan
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 BaetaTiago Baeta
Fundador do iMasters — http://www.imasters.com.br
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.
Este livro é destinado aos desenvolvedores web que tenham,
pelo menos, conhecimentos básicos da linguagem JavaScript. A
11
66
1010
2323
SumárioSumário
1 ECMAScript x1 ECMAScript x JavaScriptJavaScript
1.1 Implementações da especificação
1.2 Breve histórico
1.3 Futuro
2 Precisamos falar sobre o Babel2 Precisamos falar sobre o Babel
2.1 Outras ferramentas
3 Métodos auxiliares para Array3 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áveis4 Iteração com iteradores e iteráveis
4.1 Iteradores
4.2 Iteráveis
4.3 Iteradores e iteráveis na prática
Casa do Código Sumário
9999
106106
116116
126126
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 Rest13 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 Spread14 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 Objetos15 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 classes16 Modelando com classes
16.1 Utilize classes do ES
16.2 Estendendo classes
16.3 Hoisting em classes
16.4 Declaração por meio de expressões
Casa do Código Sumário
138138
150150
161161
171171
16.5 Métodos estáticos
16.6 Atributos privados com WeakMap
16.7 Últimas considerações
17 Módulos17 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 geradoras18 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 promises19 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 proxies20 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
Sumário Casa do Código
Antes que possamos dar início às explicações e colocar a mão na
massa, é muito importante entender corretamente o que é o
ECMAScript e qual a sua relação com o JavaScript. O ECMAScript
(ES) é a especificação da linguagem de script que o JavaScript
implementa. Isto é, a descrição de uma linguagem de script, sendo
padronizado pela Ecma International
(http://www.ecmascript.org/index.php) — associação criada em
1961 dedicada à padronização de sistemas de informação e
comunicação — na especificação ECMA-262.
A especificação é definida pelo ECMA Technical Comittee 39
(TC39), comitê formado por especialistas de grandes companhias
da área de tecnologia, tais como: Apple, Google, Microsoft e
Mozilla. Este comitê se reúne a cada dois meses, normalmente na
Califórnia, para discutir o futuro da especificação. As datas das
reuniões, assim como trechos delas, também estão disponíveis
online no site oficial.
Somente para se ter uma ideia da grandeza da especificação, a
última edição do ECMA-262 (até o momento que este livro foi
escrito, estava na 7º edição) possuía 586 páginas. O documento pode
ser encontrado no site oficial da Ecma Internacional
(http://www.ecma-international.org/publications/files/ECMA-
ST/Ecma-262.pdf).
1 ECMASCRIPT X JAVASCRIPT 1
Figura 1.1: A relação entre o ECMAScript e o JavaScript
O ECMAScript é suportado por uma diversidade de aplicações,
principalmente navegadores, em que são implementados pela
linguagem JavaScript. Muitas das implementações adicionam
extensões específicas a linguagem, como é o caso do JScript da
Microsoft. Isso significa que aplicações escritas em uma
implementação podem ser incompatíveis com outras. É sempre
preciso estar atento a isto.
A tabela a seguir mostra algumas das principais engines e
linguagens do mercado que trabalham a especificação.
IImmpplleemmeennttaaççããoo AApplliiccaaççããoo VVeerrssããoo
V 8 GoogleChrome,Node.js,Opera 6
SpiderMonkey Firefox,AdobeAcrobat 6
JavaScriptCore(Nitro) WebKit,Safari 6
JScript 9. 0 InternetExplorer 5. 1
Nashorn Java 5. 1
ActionScript Adobe Flash, Adobe Flex e Adobe AIR 4
Muitas engines ainda não dão suporte completo a todas as
funcionalidades da ES6. Para se manter informado da
2 1.1 IMPLEMENTAÇÕES DA ESPECIFICAÇÃO