Oii Lucas,
Essa é uma excelente pergunta, pois toca em um ponto fundamental sobre boas práticas e a intenção do código.
Embora o resultado visual no console seja idêntico, a diferença está na arquitetura da sua lógica:
1. A sua abordagem (controle de fluxo):
Ao colocar o console.log diretamente dentro do ternário, você está usando o operador para executar uma ação. O ternário verifica a condição e executa o comando de imprimir.
Isso funciona, mas limita o uso daquela resposta. Se você precisasse usar essa mensagem em outro lugar (por exemplo, exibir em um alerta ou salvar num banco de dados), você teria que reescrever a lógica.
2. A abordagem do instrutor (atribuição de valor):
Ao usar const mensagem = ..., o foco do ternário passa a ser apenas decidir qual é o valor. Ele não imprime nada, apenas retorna o texto correto.
Isso deixa seu código mais flexível. Um exemplo prático da vantagem de usar a variável:
// com variável, você calcula a lógica uma vez e usa o resultado onde quiser
const mensagem = (usuario === 'admin') ? "Login bem-sucedido!" : "Usuário inválido.";
console.log(mensagem); // posso imprimir no console
alert(mensagem); // E também posso jogar num alerta sem repetir o teste
- Se o objetivo é apenas executar uma ação rápida e única, seu método funciona.
- Se você quer deixar o código limpo, separar a "regra de negócio" (qual texto exibir) da "saída" (console), a forma do instrutor é a mais recomendada profissionalmente.
Parabéns por questionar o "porquê" das coisas, esse é o caminho para dominar a linguagem.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!