Page cover

7.7.2 - Funções

🧠 Funções em Detalhes: Segredos, Cuidados e Curiosidades!

🧠 Funções em Detalhes: Segredos, Cuidados e Curiosidades!

Vamos agora entender ainda mais sobre funções, incluindo situações específicas, dúvidas que todo mundo tem no começo e algumas práticas poderosas que só quem conhece bem as funções usa. Bora? 🚀


🌀 E se não tiver return? Ou se ele estiver sozinho?

🔹 Sem return:

Se sua função não tiver return, ela não devolve valor nenhum. O resultado será undefined.

function digaOi() {
  console.log("Oi!");
}

let resultado = digaOi();
console.log(resultado); // undefined

🔹 Com return; sozinho:

Ela vai sair da função, mas sem devolver nada.

function sairSemNada() {
  return;
}

console.log(sairSemNada()); // undefined

💡 Use return quando quiser devolver algo útil da função. Se quiser só executar algo (como mostrar no console), ele pode ser omitido.


⚡ IIFE – Funções que se executam sozinhas!

IIFE significa Immediately Invoked Function Expression – ou seja, uma função que é criada e executada imediatamente, no mesmo momento.

💡 Muito usada para isolar variáveis, evitar conflitos e inicializar scripts.


🧭 Quando usar cada tipo de função?

Tipo de Função
Quando usar

function nome()

Quando precisa reutilizar várias vezes ou declarar antes de chamar

const nome = function()

Quando quiser guardar a função em variável, útil para funções anônimas

const nome = () => {}

Quando quiser um código mais limpo ou trabalhar com funções pequenas

⚠️ Lembre-se: funções com function nome() são "hoisted" — ou seja, você pode chamá-las antes mesmo de declará-las. Já as funções em variáveis só funcionam depois da linha onde foram criadas.


📦 Vários parâmetros? Sem problemas!

Você pode passar quantos parâmetros quiser, separados por vírgula:

💡 Parâmetros extras? Tudo bem!

Se você passar mais argumentos do que parâmetros, os extras são ignorados:

⚠️ Menos parâmetros?

Se faltar algum argumento, ele vira undefined.


🧷 Parâmetros padrão

Você pode definir valores padrão para os parâmetros, evitando undefined:


🌊 Spread e Rest: o famoso ...

Rest parameters: junta vários argumentos num array

🧠 Use ... quando não sabe quantos argumentos vai receber.


🏁 Por que o return é tão importante?

O return entrega um valor de volta para quem chamou a função. Sem ele, a função só faz algo, mas não responde nada.

Use return para cálculos, verificações, ou qualquer coisa que precise de um valor de saída.


🤯 O que é considerado uma função em JavaScript?

Em JavaScript, funções são primeira classe – ou seja, elas podem ser:

  • Guardadas em variáveis

  • Passadas como argumentos

  • Retornadas de outras funções

  • Guardadas dentro de objetos (métodos)


💡 Observação poderosa: Funções de ordem superior

No JavaScript, as funções são “cidadãs de primeira classe” — ou seja, você pode armazenar, passar e retornar funções como se fossem dados comuns.

👉 Isso abre espaço para um conceito muito útil chamado funções de ordem superior.

🧠 O que é isso?

Uma função de ordem superior (higher-order function) é uma função que:

  • Recebe uma ou mais funções como parâmetro ou

  • Retorna uma função como resultado

🧪 Exemplo 1: recebendo uma função como parâmetro

🔁 Exemplo 2: retornando uma função

🧩 Funções de ordem superior são base de muitas ferramentas modernas, como .map(), .filter(), .reduce() e até de frameworks famosos (como React!).

Elas tornam seu código mais modular, legível e poderoso — como montar LEGO com inteligência! 🧱💡


❌ Cuidados importantes e erros curiosos

1. Não usar return onde precisa

✅ Corrigindo:


2. Nome igual para variáveis e funções


3. Confundir console.log com return


🌟 Resumo do que aprendemos:

Conceito
Explicação

return

Envia valor de volta ao código que chamou a função

IIFE

Função que se executa assim que é criada

...

Recebe vários argumentos como um array (rest)

Parâmetros extras

São ignorados

Parâmetros faltando

Viram undefined

Tipos de função

function, função anônima, arrow function

Funções são objetos

Podem ser guardadas, passadas e manipuladas


🧪 Desafio Final:

Crie uma função chamada calcularNotas que receba qualquer quantidade de notas (usando ...) e calcule a média:

Depois, use essa função dentro de outra chamada situacaoAluno que retorna:

  • “Aprovado ✅” se a média for ≥ 7

  • “Recuperação 🟡” se for ≥ 5

  • “Reprovado ❌” se for < 5


🎓 Conclusão

Agora você conhece as funções por dentro e por fora. Com essas ferramentas, dá pra escrever códigos mais inteligentes, mais rápidos e mais organizados!

"Funções são como superpoderes: quando você entende como usá-las, pode resolver qualquer missão no mundo da programação!"

Atualizado