Acredito que todos já saibam da nova versão do JavaScript(ES6), oficialmente chamada de ES2015.
A falta de suporte dos navegadores não pode ser uma desculpa para você ficar pensando em não estudar ou não aplicar o ES6. Cuidado para não ficar ultrapassado!
Já existe como configurar o seutaks manager para fazer o transpile do ES6 com o Babel. A versão mais recente do Node.js já está rodando tranquilamente o ES6, mas nem tudo do ES6 estará presente.
Então sem mais desculpas, vamos aprender…
Variáveis com let e escopo
A novidade let agora permite declarar variáveis limitadas ao âmbito de um bloco. Isso é totalmente o oposto do var, por declarar e sobrescrever variáveis no âmbito global de sua função envolvente.
No ES6, o let irá fazer hoisting da variável no topo do bloco, ou seja, caso seja declarado novamente no mesmo contexto, a segunda declaração retornará um TypeError. E caso a variável definida com let seja referenciada antes da sua declaração, o erro será de referência.
Veja alguns exemplos do let:
Arrow function
Agora com a sintaxe mais curta ficou ainda mais tranquilo trabalhar com funções no JavaScript. Deixando o this com o valor do contexto vinculado da função, ou seja, que acabem as gambiarras do “var self = this”.
Ao deixar o this mais aberto, as regras de ‘strict mode’ para com ele, são ignoradas.
Lembrando que o uso da arrow function significa que essa função será anônima.
Veja alguns exemplos de como utilizar arrow functions:
Parâmetros de função
No JavaScript os parametros das funções são sempre undefined por padrão. E com a mudança do ES6, agora é possível definir um valor padrão para paramentos de função, quando não são passados ou são passados como undefined.
Isso evitará as verificações dentro da função se as variáveis passadas são do tipo undefined antes da sua utilização no decorrer da função.
Veja alguns exemplos de parâmetros de função:
Spread Operator
Essa funcionalidade permite espalhar múltiplos argumentos no caso de função ou espalhar múltiplos elementos no caso de array.
Isso traz um poder muito grande para os arrays e também muito benefício às chamadas de função, podendo ser utilizado várias vezes para os argumentos da função.
Veja alguns exemplos de spread operator:
Destructuring assignment
Agora ficou fácil trabalhar com objetos e arrays. Essa sintaxe foi criada para extrair os valores desses arrays e objetos.
É possível também trabalhar com a extração de funções exportadas de um outro arquivo, para o arquivo a ser utilizado.
Claro que trabalhar com muitos valores e dimensões em um array ou um objeto muito abrangente, pode trazer confusão e requer muito cuidado.
Mas começando a utilizar aos poucos, podem ter certeza de que destructuring assignment é vida!
Vejam alguns exemplos básicos de como funciona o destructuring assignment:
Generator functions
Funções criadas para trabalhar com iterações de objetos. Podem encerrar a iteração e depois, com uma nova chamada, continuar de onde parou.
Quando a função é chamada a primeira vez, o objeto iterado é retornado, e não há execução do corpo da função. Assim, quando o método next(), for executado, aí sim a função será executada por completo e a iteração começará.
Foi criada também a expressão “yield” que trabalha como um limitador da iteração, funciona parecido com o uso de “break” em um “forEach”.
Veja alguns exemplos de como usar generator functions:
Essas não são todas as novidades do ES6, existem muito mais! Separei apenas as mais fundamentais e básicas, para começarmos a estudar e aplicar nos nossos projetos.
É isso, galera! Obrigado pela visita!