Arrow Functions Javascript – Entende de uma vez por todas

Arrow Functions

Junto da versão ES6 do EcmaScript foi adicionado as Arrow Functions, que basicamente é uma forma diferente de escrever funções no JavaScript, com uma estrutura mais curta mas que trás muitos benefícios.

Vamos primeiro entender a diferença de sintaxe entre as funções tradicionais e arrow functions no Javascript.

Sintaxe básica

Usando uma função tradicional temos a seguinte estrutura:

function soma(valor1, valor2){
    return valor1 + valor2
}

Já usando arrow functions podemos simplificar para só uma linha.

let soma = (valor1, valor2) => valor1 + valor2

Bem diferente certo?
Vamos ver no detalhe cada parte dessa sintaxe.

(param1, param2, param3) => { codigoDaFuncao }

A lista de parâmetros deve ser escrita entre um par de parênteses.

Após a declaração dos parâmetros vem o símbolo => em seguida vem o corpo da função em sí, envolvida por chaves.

Caso a função tenha só um parâmetro então não é preciso usar os parenteses.

param => { return param * 2 }

Se a função for simples e tiver valor de retorno então também não é preciso usar as chaves.

param => param * 2

Principais usos de arrow functions.

O principal uso para arrow functions além de simplificar o código em geral é ser passada como parâmetro em funções que precisam de callback.

Exemplos:

Dado o array de elementos:

var elements = [
  'Hydrogen',
  'Helium',
  'Lithium',
  'Beryllium'
];

Usando uma função tradicional temos o seguinte código.

elements.map(function(element) {
  return element.length;
});

Ao fazermos a mudança conforme explicado acima temos:

elements.map((element) => {
  return element.length;
});

Como só temos um parâmetro então podemos remover os parênteses da declaração de parâmetros.

elements.map(element => {
  return element.length;
});

E por fim, como a função é só um return podemos remover também as chaves e o return.

elements.map(element => element.length);

Pontos de atenção Arrow Functions

Return Implícito

Caso você opte por usar chaves então não esqueça que o return não é implícito.

var func = x => x * x;
// Sintaxe com return implícito

var func = (x, y) => { x + y; };
// Aqui o return não pode ser implícito.

//Corrigindo temos:
var func = (x, y) => { return x + y; };

Retornar objetos literais

Para retornar um objeto literal de uma arrow function é preciso encapsular o objeto entre parênteses.

var func = () => ({foo: 1});

Se tentar retornar somente o objeto, então ao chamar a função dará erro.

var func = () => { foo: 1 };

Quebras de linhas

Não pode ter quebra de linha entre a declaração dos parâmetros e a flecha.

var func = (a, b, c)
           => 1;

Porém se a flecha estiver na mesma linha do fim dos parâmetros não há problema.

var func = (
  a,
  b,
  c
) => (
  1
);

Conclusão – Arrow Functions

Certamente essa foi uma das principais adições do ES 6, e vem mudando a forma de escrever Javascript moderno.

Mas temos que ter cuidados, então confira quando não usar.

Agora se você quiser aprender mais sobre o JavaScript e aprender criando projetos, confira o curso Programador JavaScript Profissional dos nossos parceiros da OneBitCode.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Dev Por Ai
Visão geral da privacidade
Este site usa cookies para que possamos oferecer a melhor experiência possível ao usuário. As informações sobre cookies são armazenadas no seu navegador e desempenham funções como reconhecê-lo quando você retornar ao nosso site e ajudar nossa equipe a entender quais seções do site você acha mais interessantes e úteis.
Mahjong Ways Mahjong Ways Mahjong Ways Mahjong Ways Mahjong Ways Montir Bengkel Syok Berat Rezeki Rp280 Juta Turun dari Gates of Olympus Nelayan Tua Pulang Tanpa Ikan Tapi Zeus Kasih Rp300 Juta Pengrajin Gerabah Jadi Sorotan Menang Rp175 Juta di Gates of Olympus Zeus Bikin Gila Tukang Parkir Terminal Mendadak Jadi Jutawan Rp250 Juta Zeus Turunkan Petir Berkah Pemuda Warung Kopi Pulang dengan Rp350 Juta Mahjong Ways Mahjong Ways Mahjong Ways Mahjong Ways Mahjong Ways mahjong ways mahjong ways mahjong ways mahjong ways mahjong ways Keping terakhir berputar Naga berdehem Zeus menjawab saldo menulis akhir yang bahagia Keping terakhir berputar Naga berdehem Zeus menjawab saldo menulis akhir yang bahagia Tiga detik hening sebelum badai saldo meledak rapi notifikasi berbaris seperti parade Salah tekan katanya padahal itu petir menyetujui transaksi dan langit ikut bertepuk tangan Bukan cinta yang datang malam ini notifikasi saldo mengetuk lebih dulu berkali-kali Eksperimen 15 Menit Strategi Baru Lahir Tanpa Drama Pemuda Ini Membongkar Strategi Tersembunyi Permainan Tiba-Tiba Patuh Kombinasi 735 Rahasia yang Mengubah Statistik Algoritma Terbaca Seseorang Menemukan Kombinasi Emas di Balik Layar Satu Malam Satu Catatan Pola Konsisten Akhirnya Muncul