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); // 30Retornando 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)); // 30return 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 1String
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(); // ordenaExercí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 zero2. 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")); // false3. 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")); // false5. 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,00Escopo 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 aquiVariá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
-
Nomes descritivos
javascript// Ruimfunction f(x) { return x * 2; } // Bomfunction calcularDobro(numero) { return numero * 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) { } -
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
- ✅
returndevolve um valor - ✅ Arrow functions são mais curtas
- ✅ Escopo limita onde variáveis existem
Na próxima aula, vamos aprofundar em arrays e objetos! 🚀