Arrow Functions

Expressões de Funções

São funções que representam expressões.
Nomeação é opcional. Quando não há nomeação, chamamos de função anônima.
Nunca são invocadas diretamente, sempre são atribuídas, pois variáveis podem armazenar funções.

                            var fn1 = function fnNomeada() {
                                console.log('função nomeada');
                            };
                            
                            var fn2 = function () {
                                console.log('função anônima');
                            };
                        

Arrow Functions - Expressões de Funções de Sintaxe Curta

Arrow Functions

Introduzidas no ES6 com um formato mais enxuto.
Nomeação não existe, portanto sempre serão funções anônimas.
Arrow significa seta "=>".
Sintaxe Básica: var fn () => {}

                            // Apenas um argumento de entrada, pode-se omitir os parênteses
                            var fn = message => { console.log(message); };
                                // Exceto...
                                var fn = ({a}) => a;    // Objeto literal
                                var fn = (...a) => a;   // Spread Operator
                                var fn = (a = 5) => a;  // Default Arguments

                            // Apenas uma instrução, pode-se omitir as chaves
                            var fn = () => console.log('Hello World');
                            
                            // Apenas uma instrução, pode-se omitir o return
                            var fn = (a, b) => a - b;    
                            
                            // Retorno de objeto literal, deve ser entre parenteses ()
                            var fn = () => ( {name:'Heviane', age:39} );