Olá, Alan. Como vai?
Excelente publicação compartilhando duas formas diferentes e muito elegantes de resolver o mesmo problema! É ótimo ver como você praticou tanto a sintaxe tradicional de funções com blocos if/else quanto a sintaxe moderna utilizando Arrow Functions combinadas com o Operador Ternário (? :).
Gostaria de destacar e parabenizar um detalhe técnico sutil que você aplicou perfeitamente em ambas as abordagens:
- Tratamento de Strings Vazias como "Falsy": No seu código, você definiu o parâmetro padrão como uma string vazia
(nome = ""). No JavaScript, uma string vazia é considerada um valor falsy (que se comporta como falso em testes lógicos). Por isso, a sua verificação if (nome) ou o ternário nome ? ... funcionam de forma cirúrgica: se o nome não for enviado, a string vazia cai direto no bloco do else, evitando mensagens estranhas como "Olá, undefined!".
Para agregar ainda mais valor ao seu aprendizado sobre manipulação de strings e funções, uma boa prática de mercado quando lidamos com nomes digitados por usuários é aplicar o método .trim().
Se um usuário acidentalmente chamar a sua função passando apenas espaços em branco, como saudacao(" "), o JavaScript interpretará esses espaços como um valor verdadeiro (truthy) e a mensagem sairá quebrada: "Olá, ! Boas vindas!". O .trim() remove esses espaços vazios das pontas.
Veja como poderíamos adicionar essa camada extra de proteção na sua Arrow Function:
const bemVindoProtegido = (nome = "") => {
// Remove espaços em branco do início e fim do texto
const nomeLimpo = nome.trim();
// Se a string ainda tiver conteúdo após a limpeza, exibe o nome
const mensagem = nomeLimpo ? `Olá, ${nomeLimpo} bem-vindo(a)!` : "Olá! bem-vindo(a)!";
console.log(mensagem);
};
bemVindoProtegido(" "); // Trata os espaços e exibe corretamente: Olá! bem-vindo(a)!
bemVindoProtegido(" Lucas "); // Limpa as pontas e exibe: Olá, Lucas bem-vindo(a)!
Dominar essa transição entre funções nomeadas e arrow functions com operadores compactos dá uma base fortíssima para qualquer desenvolvedor no ecossistema Front-end. Continue com esse ritmo excelente de estudos e testes!
Espero que possa ter lhe ajudado!