DevPath · Aprenda a programar ESPTEN

Funções

Declaração vs expressão de função

O que é uma função?

Imagine ter que reescrever a mesma receita toda vez que quisesse jantar. Um pesadelo, né? As funções são exatamente o oposto: o seu primeiro superpoder como programador. Escreva a lógica uma vez e use mil vezes.

Uma função é um bloco de código com nome que agrupa instruções para que você possa reutilizá-las. Pense nela como uma receita de cozinha: você a escreve uma vez e a "cozinha" (a chama) quantas vezes quiser, sem precisar anotar os passos de novo.

Declaração de função

function saudar(nome) {
  return "Olá, " + nome;
}

console.log(saudar("Ana")); // "Olá, Ana"

Uma declaração começa com a palavra-chave function seguida de um nome. Ela tem uma propriedade especial: graças ao hoisting você pode chamá-la antes de escrevê-la no código.

Expressão de função

const saudar = function (nome) {
  return "Olá, " + nome;
};

Aqui a função não tem nome próprio (é anônima) e é guardada em uma variável. Ao contrário da declaração, você não pode usá-la antes de defini-la.

Qual você deve usar?

⚠️ Pegadinha clássica: confundir definir uma função com chamá-la. Escrever saudar (sem parênteses) te dá a função inteira; saudar("Ana") de fato a executa. São dois gestos diferentes, e esquecer os parênteses é um dos deslizes mais comuns.

Exemplos

Declaração chamada antes de ser definida (hoisting)

console.log(dobro(5)); // 10, funciona mesmo estando acima!

function dobro(n) {
  return n * 2;
}

Expressão de função guardada em uma variável

const quadrado = function (n) {
  return n * n;
};
console.log(quadrado(4)); // 16
Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
Arrow functions →