sábado, 16 de abril de 2016

Arrow Functions no JavaScript ES6 (ECMAScript 6)

Arrow Functions são uma das novidades do ECMAScript 6 (ES6) e compartilham dos mesmos conceitos das Expressões Lambda, presentes em linguagens como C#, Python, Java, etc, amplamente utilizadas em Programação Funcional.

Uma das principais vantagens em relação as funções tradicionais é o fato das Arrow Functions terem uma sintaxe mais "enxuta", podendo-se omitir as palavras chave function e return, e também, o nome da função, Arrow Functions são sempre anônimas, e portanto, um bom uso para elas e passá-las como callback anônimo para outras funções.

Vejamos um exemplo:

a = [1,2,3,4,5,6];

var result = a.filter(function(num) { return num % 2 == 0; });

var result = a.filter((num) => num % 2 == 0);

Notem que no segundo caso o código ficou mais conciso.

Aquilo que vem antes da flecha (=>) são os parâmetros da função, e o que vêm depois são as declarações ou uma expressão. No caso de ser apenas uma expressão, como no exemplo acima, não é necessário utilizarmos chaves, porém, se utilizarmos as chaves devemos declarar o return explicitamente. Ex: (num) => { return num % 2 == 0; }.

Se temos apenas um parâmetro, o uso dos parenteses não é obrigatório.
Ex: num => num % 2 == 0;

No entanto, podemos utilizar mais de um parâmetro, neste caso os parenteses são obrigatórios:
Ex: (x, y) => x * y;

Se não houver nenhum parâmetro, obrigatoriamente devemos utilizar os parenteses:
Ex: () => 2 * 2;

As Arrow Functions podem ser atribuídas a variáveis.Ex:
var f = (x) => x * x;
f(2); //4

Para retornarmos um objeto devemos utilizar parenteses no corpo da função.
Ex: x => ({a: 5})

Espero que este post tenha sido útil.
Abraço.



Nenhum comentário:

Postar um comentário