Módulo 4 de 8
Funções
Ao final deste módulo, você será capaz de:
- Criar funções com
functione com arrow functions (=>); - Usar parâmetros e valores padrão;
- Retornar valores com
return; - Entender a diferença entre escopo local e global.
1. Por que usar funções?
Uma função é um bloco de código reutilizável. Em vez de repetir o mesmo código várias vezes, escrevemos uma vez dentro de uma função e a "chamamos" sempre que precisarmos.
function saudar(nome) {
console.log("Olá, " + nome + "!");
}
saudar("Carlos"); // Olá, Carlos!
saudar("Beatriz"); // Olá, Beatriz!
2. Parâmetros e retorno
Parâmetros são as "entradas" da função. return define a "saída" — o valor
que a função devolve para quem a chamou. Assim que o JavaScript encontra um return, a função
para de executar.
function somar(a, b) {
return a + b;
}
let resultado = somar(3, 4);
console.log(resultado); // 7
return devolve undefined. Isso é diferente
de usar console.log, que só mostra algo no console mas não devolve valor para ser usado depois.
3. Valores padrão para parâmetros
Você pode definir um valor padrão, usado quando o argumento não é passado na chamada:
function saudar(nome = "visitante") {
console.log("Olá, " + nome + "!");
}
saudar(); // Olá, visitante!
saudar("Marcos"); // Olá, Marcos!
4. Arrow functions: outra forma de escrever funções
As arrow functions (funções de seta) são uma sintaxe mais curta, muito usada em JavaScript moderno:
// Função tradicional
function dobrar(numero) {
return numero * 2;
}
// Arrow function equivalente
const dobrar2 = (numero) => {
return numero * 2;
};
// Arrow function ainda mais curta (retorno implícito, sem chaves)
const dobrar3 = (numero) => numero * 2;
console.log(dobrar(5), dobrar2(5), dobrar3(5)); // 10 10 10
5. Escopo: onde uma variável "existe"
Variáveis criadas dentro de uma função (escopo local) só existem ali dentro. Variáveis criadas fora de qualquer função (escopo global) podem ser usadas em qualquer lugar do código.
let mensagemGlobal = "Eu existo em todo lugar";
function testarEscopo() {
let mensagemLocal = "Eu só existo aqui dentro";
console.log(mensagemGlobal); // funciona
console.log(mensagemLocal); // funciona
}
testarEscopo();
console.log(mensagemGlobal); // funciona
// console.log(mensagemLocal); // ERRO: mensagemLocal não existe aqui fora
return — isso deixa o código mais previsível.