Aula 9: Funções Anônimas, Arrow Functions e Higher-Order Functions em JavaScript

Introdução

Eai, dev´s ! Sejam bem-vindos a mais uma aula onde vamos aprofundar um dos conceitos mais importantes de JavaScript: funções. Se você quer entender melhor como funções funcionam, como deixá-las mais eficientes, e como aproveitar ao máximo a programação funcional.

Nessa aula, vamos explorar:

  • Funções anônimas: O que são e quando usá-las?
  • Arrow Functions: Como simplificar funções em JavaScript.
  • Higher-Order Functions: Funções que trabalham com outras funções.

Vamos mergulhar no código e aprender tudo isso, então BORA CODAR!!

O que são funções em JavaScript?

Antes de entrarmos em detalhes sobre funções anônimas e arrow functions, precisamos entender o que é uma função em JavaScript.

Uma função é um bloco de código reutilizável que pode ser chamado em diferentes partes do seu programa. Existem diversas maneiras de declarar funções, e cada uma tem sua utilidade específica.

Exemplo de uma função tradicional:

Aqui temos:

  • A palavra-chave function para declarar a função.
  • O nome saudacao.
  • Um parâmetro nome.
  • Um return que devolve uma saudação personalizada.

Agora que entendemos isso, vamos explorar outras formas mais avançadas de trabalhar com funções.

Funções Anônimas

Uma função anônima é uma função que não tem nome. Isso significa que não podemos chamá-la diretamente pelo nome, mas podemos atribuí-la a uma variável e chamá-la através dessa variável.

Exemplo básico de função anônima:

Explicação linha por linha:

  1. Criamos uma variável saudacao e atribuímos a ela uma função sem nome.
  2. Essa função recebe um parâmetro nome e retorna uma string personalizada.
  3. Quando chamamos saudacao("Guilherme"), recebemos a mensagem “Olá, Guilherme!”.

Mas qual a utilidade de funções anônimas?

Funções anônimas são muito úteis quando queremos:

  • Criar funções rápidas sem precisar nomeá-las.
  • Passar funções como argumentos para outras funções (isso vai ficar mais claro em Higher-Order Functions).
  • Criar funções dentro de outras funções.

Agora, vamos ver como podemos melhorar isso com as arrow functions.

Arrow Functions

As arrow functions são uma forma mais curta e moderna de escrever funções anônimas. Elas foram introduzidas no ES6 e facilitam bastante a vida dos desenvolvedores.

Exemplo 1: Arrow Function com um parâmetro

Explicação:

  1. Criamos a função dobrar usando a sintaxe de arrow function.
  2. Ela recebe um número num e retorna num * 2.
  3. Chamamos dobrar(5), que resulta em 10.

Mas podemos simplificar ainda mais!

Exemplo 2: Arrow Function com dois parâmetros

Agora vamos ver como podemos reduzir ainda mais o código.

Exemplo 3: Arrow Function ainda mais curta

Se tivermos apenas uma linha de código, podemos omitir {} e return:

Aqui:

  • Como só temos um único parâmetro, podemos omitir os parênteses ().
  • Como só temos uma única expressão, não precisamos do {} nem do return.

Isso faz com que arrow functions sejam ideais para funções pequenas e reutilizáveis!

Higher-Order Functions

Agora vamos para algo mais avançado! Higher-Order Functions (HOFs) são funções que recebem outras funções como parâmetros ou retornam uma função. Elas são fundamentais para a programação funcional.

Exemplo: Usando map para dobrar números

Explicação:

  1. Criamos um array numeros.
  2. O método map percorre cada número do array e aplica a função num => num * 2.
  3. O resultado é [2, 4, 6, 8, 10].

OBS: Na próxima aula, você entenderá o que é um array e um método. Por enquanto, concentre-se no conceito de high-order functions.

Agora vamos criar nossa própria Higher-Order Function!

Criando uma Higher-Order Function do zero

Aqui:

  • A função operacao recebe um número e uma função como argumento.
  • Chamamos operacao(4, quadrado), que retorna 16.

Isso nos dá muita flexibilidade, pois podemos passar qualquer função como argumento!

Outro exemplo: uma função que retorna outra função:

Isso é útil quando queremos configurar uma função antes de usá-la.

Conclusão

Hoje aprendemos: Funções anônimas: Quando você precisa armazenar uma função em uma variável. Arrow Functions: Deixam o código mais limpo e legível. Higher-Order Functions: Funções que aceitam ou retornam outras funções.

As funções são uma parte essencial do JavaScript e dominar esses conceitos vai te ajudar a escrever códigos mais eficientes.

👉 Link para o GitHub da aula: https://github.com/guilherme-silvam/js-aulas-guilhermemachadodev/tree/main/aula-9-guilhermemachadodev

Próxima aula

Na próxima aula, vamos conhecer os Arrays. Prepare-se para continuar aprendendo!

Se tiver qualquer dúvida, estou à disposição. Deixe um comentário ou entre em contato! Até lá, bons estudos e bora codar!

Publicar comentário