5 Funções
Funções são blocos de código reutilizáveis.
Elas recebem dados de entrada, executam uma tarefa e podem devolver um resultado.
5.1 Por que funções são importantes?
- Evitam repetição de código.
- Organizam melhor o programa.
- Facilitam testes e manutenção.
- Permitem dividir problemas grandes em partes menores.
5.2 Declaração de função
function saudacao(nome) {
return `Olá, ${nome}!`;
}
console.log(saudacao("Marina"));5.3 Parâmetros e retorno
function media(n1, n2, n3) {
return (n1 + n2 + n3) / 3;
}
const resultado = media(7, 8, 9);
console.log(resultado);5.3.1 Exemplo do cotidiano estudantil
function mediaPresenca(aula1, aula2, aula3, aula4) {
return (aula1 + aula2 + aula3 + aula4) / 4;
}
const presenca = mediaPresenca(100, 100, 75, 100);
console.log(`Média de presença: ${presenca}%`);5.4 Parâmetros com valor padrão
function calcularIngresso(valor, taxaServico = 5) {
return valor + taxaServico;
}
console.log(calcularIngresso(30)); // 35
console.log(calcularIngresso(30, 8)); // 385.5 Função anônima em variável
const dobro = function (n) {
return n * 2;
};
console.log(dobro(9));5.6 Arrow functions
const quadrado = (n) => n * n;
console.log(quadrado(6));Exemplo com turismo:
const calcularGastoPasseio = (transporte, alimentacao, ingresso) =>
transporte + alimentacao + ingresso;
const gastoTotal = calcularGastoPasseio(80, 55, 30);
console.log(`Gasto total no passeio: R$ ${gastoTotal}`);5.7 Escopo
- variáveis globais: acessíveis fora de funções;
- variáveis locais: só existem dentro da função.
let curso = "Informática";
function mostrarCurso() {
let modulo = 2;
console.log(curso);
console.log(modulo);
}
mostrarCurso();5.8 Funções puras e efeitos colaterais
Função pura: para a mesma entrada, sempre devolve a mesma saída e não altera estado externo.
function somar(a, b) {
return a + b;
}Função com efeito colateral:
let contador = 0;
function incrementarContador() {
contador++;
}5.9 Função que calcula x função que exibe
function calcularDesconto(valorCompra, porcentagem) {
return valorCompra - (valorCompra * porcentagem) / 100;
}
function mostrarPrecoFinal(valorOriginal, desconto) {
const precoFinal = calcularDesconto(valorOriginal, desconto);
console.log(`De R$ ${valorOriginal} por R$ ${precoFinal}`);
}
mostrarPrecoFinal(120, 10);5.10 Callback (função passada para outra função)
function processarAluno(nome, callback) {
const mensagem = `Aluno: ${nome}`;
callback(mensagem);
}
processarAluno("Bruna", (texto) => {
console.log(texto.toUpperCase());
});5.11 Exemplo integrado: roteiro de viagem
function somarDespesas(listaDeValores) {
let total = 0;
for (const valor of listaDeValores) {
total += valor;
}
return total;
}
function calcularCustoPorPessoa(total, quantidadePessoas) {
return total / quantidadePessoas;
}
const despesas = [90, 60, 40, 30];
const totalViagem = somarDespesas(despesas);
const custoIndividual = calcularCustoPorPessoa(totalViagem, 4);
console.log(`Total da viagem: R$ ${totalViagem}`);
console.log(`Custo por pessoa: R$ ${custoIndividual}`);5.12 Boas práticas para funções
- Use nomes claros (
calcularMedia,buscarAluno). - Faça funções curtas e com um objetivo.
- Prefira
returnpara reaproveitamento. - Evite misturar cálculo com interface.
- Teste cenários comuns e cenários de erro.
5.13 Exercícios
- Crie
tempoCaminhada(distanciaKm, velocidadeKmH). - Crie
converterRealParaGuarani(real, cotacao). - Crie
custoViagemBonito(transporte, hospedagem, alimentacao, passeios). - Crie
mediaNotas(notas)para um array de notas. - Desafio:
situacaoAluno(media, frequencia)com regras definidas por você.