Pular para o conteúdoPedro Farbo
Lição 12 / 1645 min

Organizando com Funções

Organizando com Funções

Funções são blocos de código reutilizáveis. Elas são fundamentais para organizar e não repetir código!

O que é uma função?

Uma função é como uma receita:

  • Tem um nome
  • Pode receber ingredientes (parâmetros)
  • Executa passos
  • Pode retornar um resultado
javascript
// Definindo a funçãofunction saudacao() {    console.log("Olá, mundo!");} // Chamando/executando a funçãosaudacao(); // Olá, mundo!saudacao(); // Olá, mundo!

Função com parâmetros

Parâmetros são valores que você passa para a função:

javascript
function saudacao(nome) {    console.log(`Olá, ${nome}!`);} saudacao("Maria"); // Olá, Maria!saudacao("João");  // Olá, João!

Múltiplos parâmetros

javascript
function soma(a, b) {    console.log(a + b);} soma(5, 3);  // 8soma(10, 20); // 30

Retornando valores

Use return para a função devolver um valor:

javascript
function soma(a, b) {    return a + b;} const resultado = soma(5, 3);console.log(resultado); // 8 // Pode usar diretoconsole.log(soma(10, 20)); // 30

return encerra a função

javascript
function verificarIdade(idade) {    if (idade < 0) {        return "Idade inválida";    }     if (idade >= 18) {        return "Maior de idade";    }     return "Menor de idade";}

Parâmetros com valor padrão

javascript
function saudacao(nome = "visitante") {    return `Olá, ${nome}!`;} console.log(saudacao("Ana"));    // Olá, Ana!console.log(saudacao());         // Olá, visitante!

Arrow Functions (funções de seta)

Sintaxe moderna e mais curta:

javascript
// Função tradicionalfunction soma(a, b) {    return a + b;} // Arrow functionconst soma = (a, b) => {    return a + b;}; // Arrow function curta (uma linha)const soma = (a, b) => a + b;

Quando usar qual?

javascript
// Um parâmetro - parênteses opcionaisconst dobro = x => x * 2; // Sem parâmetros - parênteses obrigatóriosconst aleatorio = () => Math.random(); // Múltiplas linhas - chaves e returnconst calcular = (a, b) => {    const soma = a + b;    const produto = a * b;    return { soma, produto };};

Funções úteis prontas

Matemática

javascript
Math.round(4.7);    // 5 (arredonda)Math.floor(4.7);    // 4 (arredonda para baixo)Math.ceil(4.2);     // 5 (arredonda para cima)Math.max(1, 5, 3);  // 5 (maior)Math.min(1, 5, 3);  // 1 (menor)Math.random();      // número aleatório entre 0 e 1

String

javascript
const texto = "JavaScript";texto.length;              // 10texto.toUpperCase();       // "JAVASCRIPT"texto.toLowerCase();       // "javascript"texto.includes("Script");  // truetexto.replace("Java", "Type"); // "TypeScript"texto.split("");           // ["J","a","v","a"...]

Array

javascript
const nums = [3, 1, 4, 1, 5];nums.push(9);          // adiciona no finalnums.pop();            // remove do finalnums.includes(4);      // truenums.indexOf(4);       // 2 (posição)nums.join(", ");       // "3, 1, 4, 1, 5"nums.reverse();        // invertenums.sort();           // ordena

Exercícios práticos

1. Calculadora

javascript
const somar = (a, b) => a + b;const subtrair = (a, b) => a - b;const multiplicar = (a, b) => a * b;const dividir = (a, b) => b !== 0 ? a / b : "Erro: divisão por zero"; console.log(somar(10, 5));      // 15console.log(dividir(10, 0));    // Erro: divisão por zero

2. Verificador de palíndromo

javascript
function ehPalindromo(texto) {    const limpo = texto.toLowerCase().replace(/\s/g, "");    const invertido = limpo.split("").reverse().join("");    return limpo === invertido;} console.log(ehPalindromo("Ana"));     // trueconsole.log(ehPalindromo("Radar"));   // trueconsole.log(ehPalindromo("Hello"));   // false

3. Gerador de saudação por horário

javascript
function getSaudacao(hora) {    if (hora >= 5 && hora < 12) {        return "Bom dia";    } else if (hora >= 12 && hora < 18) {        return "Boa tarde";    } else {        return "Boa noite";    }} const agora = new Date().getHours();console.log(`${getSaudacao(agora)}! São ${agora} horas.`);

4. Validador de email simples

javascript
function validarEmail(email) {    if (!email.includes("@")) {        return false;    }    if (!email.includes(".")) {        return false;    }    if (email.length < 5) {        return false;    }    return true;} console.log(validarEmail("teste@email.com")); // trueconsole.log(validarEmail("invalido"));        // false

5. Formatador de moeda

javascript
function formatarMoeda(valor) {    return `R$ ${valor.toFixed(2).replace(".", ",")}`;} console.log(formatarMoeda(1234.5));  // R$ 1234,50console.log(formatarMoeda(99));      // R$ 99,00

Escopo de variáveis

Variáveis dentro de funções só existem lá dentro:

javascript
function teste() {    const mensagem = "Olá";    console.log(mensagem); // OK} teste();console.log(mensagem); // ERRO! mensagem não existe aqui

Variáveis de fora podem ser acessadas dentro:

javascript
const nome = "João"; function saudacao() {    console.log(`Olá, ${nome}!`); // OK - acessa nome de fora} saudacao();

Boas práticas

  1. Nomes descritivos

    javascript
    // Ruimfunction f(x) { return x * 2; } // Bomfunction calcularDobro(numero) { return numero * 2; }
  2. Uma função = uma tarefa

    javascript
    // Ruim - faz muita coisafunction processarUsuario(dados) {    // valida, salva, envia email, gera relatório...} // Bom - cada função faz uma coisafunction validarUsuario(dados) { }function salvarUsuario(dados) { }function enviarEmail(usuario) { }
  3. Funções pequenas

    • Se a função tem mais de 20-30 linhas, considere dividir

Resumo

  • ✅ Funções são blocos reutilizáveis
  • ✅ Parâmetros são valores de entrada
  • return devolve um valor
  • ✅ Arrow functions são mais curtas
  • ✅ Escopo limita onde variáveis existem

Na próxima aula, vamos aprofundar em arrays e objetos! 🚀

Gostou do conteúdo? Sua contribuição ajuda a manter tudo online e gratuito!

PIX:0737160d-e98f-4a65-8392-5dba70e7ff3e