JavaScriptFunçõesdesafio

Sistema de validação funcional

Em sistemas reais, você sempre vai precisar validar dados vindos de formulários ou APIs. Se você colocar toda a validação numa função gigante, fica difícil de testar e reutilizar. Separar cada validação em funções puras (que só dependem dos parâmetros) permite compor validações complexas de forma simples e previsível.

O PROBLEMA

Crie funções puras de validação: validarEmail, validarCPF, validarTelefone. Crie validarTudo que as compõe.

EXEMPLO

validarTudo({email:"ana@ok.com", cpf:"12345678901"}) → {valido: true, erros: []}

SOBRE O CONCEITO

O exercício pede funções puras de validação: validarEmail, validarCPF e validarTelefone. Uma função pura não modifica nada fora dela e sempre retorna o mesmo resultado para a mesma entrada. Depois, você cria validarTudo que chama cada uma e junta os erros. O erro comum é não separar em funções distintas, criando uma única função que tenta validar tudo de uma vez — isso quebra o princípio da responsabilidade única e dificulta a manutenção. Outro erro é fazer validações incompletas, como não verificar formato de CPF ou telefone corretamente. Usar arrow functions com const mantém o código moderno e evita problemas com this. O retorno esperado é um objeto com valido e erros, mostrando que a composição funciona.

RESOLUÇÃO

Mais exercícios de Funções

JSF019 · IntermediárioComposição de funçõesJSF020 · IntermediárioIIFEJSF022 · AvançadoGenerator functionJSF023 · AvançadoFunção pura vs impura
Ver todos os exercícios de JavaScript