Funções
São blocos de códigos nomeados que tem por fim a reutilização de códigos, para utilizar esse bloco basta chamar o nome da função e se necessário passar os devidos parâmetros.
Para declarar uma função basta indicar que a mesma é uma função através da palavra reservada function
seguido do seu nome e um par de colchetes para a declaração dos parâmetros a serem recebidos.
function escreve()
{
console.log('Sou uma função que escreve!');
}
Chamando função.
escreve();
Com parâmetros
Para referenciar parâmetro basta indicar a posição de memoria através do nome dentro do colchetes, e escrever o bloco de código informando os usos.
function escreva(entrada1)
{
console.log(entrada1);
}
Uma função tem uma analgia perfeita com uma função matemática ou seja, trabalha os parâmetros e retorna um valor, quando a função devolver uma valor sempre evidencie o mesmo.
function somar(n1, n2)
{
return n1 + n2;
}
A utilização apenas retorna o valor e não necessariamente o guarda, o mesmo pode ser printado ou armazenado em uma variável.
let resultado = somar (1, 2);
Funções anônimas 👻
É possível ainda declarar uma função anónima. Caso a mesma não tenha uma variável e estiver fora de um escopo de execução a mesma não terá utilidade, pois estará sem um gatilho para execução.
function(n1, n2)
{
return n1 + n2;
}
Salvar em uma variável
Para garantir que a função tenha uma execução é possível atribula a uma variável.
const somar = function(n1, n2)
{
return n1 + n2;
}
Para utilizar :
console.log(somar(1, 2));
Arrow Function 🏹
Disponíveis desde o ES6 de 2015 essas funções anónimas dominam o callback.
Funcionamento: inicialmente omitimos a palavra reservada function
restando apenas ()
para receber os parâmetros, seguido da =>
que indicará o bloco de código e também eliminamos caso a função tenha apenas uma ação o {}, ainda a mesma sempre retorna valor então o return
também se encontra implícito. Explicar trabalho this
Exemplo simples de X + Y
const somar = (x, y) => x + y;
Execução:
console.log(somar(1, 2));
Funções de Alta ordem
Funções podem ser passadas como parâmetros para outra funções, deste modo criando um comportamento complexo para a mesma.
const adicao = (n1, n2) => n1 + n2;
const calculadora = (n1, n2, operador) => operador(n1, n2);
Execução >>
console.log(calculadora(1, 2, adicao));
Função Pura 👼🏾
Mesmos argumentos geram os mesmos resultados.
Dado os mesmos argumentos deve ser retornado o mesmo resultado uma vez que o resultado deve depender.
Não deve haver Side Effect
Alterar valores fora do escopo da própria função. Ou seja atentar-se sempre ao return de uma variável diferente da utilizada de fora da função para gerar o resultado desejado.
Imutabilidade
Uma vez criado uma informação a mesma deve ser trabalhada, nunca alterada.
Metodos Funcionais
Array
Cria uma lista a partir de informações de uma lista já existente.
map
Em cada item de uma lista é aplicado uma função. E o map devolvera uma nova lista ao invés de alterar.
Dobrando números ;
filter
Funcionalidade para filtrar os registos, ela faz isso através de um teste lógico ou seja retorna um booleano, este relaciona verdadeiro caso o elemento seja mantido ou falso para não.
Maiores que 5;
reduce
Tira uma informação de uma lista, para isso é necessário declarar 2 parâmetros, um para armazenar o resultado parcial do processo e outro com o item a ser processado.
Ao final do bloco de execução declare o valor inicial para variável caso a ela tenha.
Reduzindo a montante;
const numSoma = numNormal.reduce((resParcial, item) =>
resParcial + item, 0);