Olá, Sarah!
Parabéns por estar se dedicando aos desafios da aula 2! É ótimo que você esteja pensando sobre as diferentes formas de resolver os problemas e buscando entender o porquê das coisas.
Na sua dúvida sobre o if e else if, usar else if é mais adequado no Desafio 1. Com ifs separados, ambas as condições são sempre verificadas. Com else if, a segunda condição só é verificada se a primeira for falsa, garantindo que apenas um bloco de código execute. No desafio, a intenção era verificar se o dia era sábado ou domingo, e só então executar o else caso contrário.
Segue abaixo uma sugestão de código que usa let, === para comparação, e o operador || (OU) para simplificar a condição:
let diaDaSemana = prompt('Qual o dia da semana?');
if (diaDaSemana === 'Sábado' || diaDaSemana === 'Domingo') {
alert('Bom fim de semana!');
} else {
alert('Boa semana!');
}
use sempre let ou const para declarar variáveis e use else if (ou || dentro de um único if) quando as condições forem mutuamente exclusivas.
Desafio 3: console.log vs. alert
Você perguntou se usar alert em vez de console.log no desafio 3 estaria errado. A resposta é: depende do objetivo do desafio.
console.log()
: Exibe uma mensagem no console do navegador (ou no terminal, se você estiver executando o JavaScript em um ambiente Node.js, por exemplo). O console é uma ferramenta para desenvolvedores, usada para depuração, exibir valores de variáveis, acompanhar o fluxo do programa, etc. O usuário comum do site não vê as mensagens do console.log().
alert()
: Exibe uma caixa de diálogo (um popup) na tela do usuário com uma mensagem. O usuário interage com essa caixa clicando em "OK".
No contexto do desafio 3: Se o objetivo do desafio era simplesmente mostrar uma mensagem para o desenvolvedor durante o desenvolvimento, então console.log() seria a escolha mais adequada. Se o objetivo fosse interagir com o usuário, mostrando uma mensagem diretamente na tela, então alert() seria mais apropriado.
Em aplicações web reais, alert()
é usado com moderação, pois pode interromper a experiência do usuário. É mais comum usar outras formas de exibir mensagens na tela, como modificar o conteúdo de um elemento HTML ou usar bibliotecas de interface do usuário (UI). console.log() é muito mais usado para depuração durante o desenvolvimento.
Exemplo:
Se o desafio 3 fosse para exibir uma mensagem de boas-vindas para o usuário, então alert()
seria uma opção válida. Mas se fosse para verificar o valor de uma variável durante o desenvolvimento, console.log()
seria a melhor escolha.
Desafio 5: Concatenação com +
Você perguntou se estaria certo concatenar a variável nome usando o operador + no desafio 5, como no exemplo abaixo:
let nomeDoUsuario = prompt('Por favor, digite seu nome:');
alert('Boas vindas, ' + nomeDoUsuario + '!');
A resposta é: Sim, está correto. O operador + em JavaScript, quando usado com strings, realiza a concatenação, ou seja, junta as strings.
No seu exemplo:
'Boas vindas, ': É uma string literal.
+: É o operador de concatenação.
nomeDoUsuario: É a variável que contém o nome digitado pelo usuário.
O JavaScript junta a string 'Boas vindas, ' com o valor da variável nomeDoUsuario e, em seguida, com a string '!', criando uma única string que é passada para a função alert().
Exemplo: Se o usuário digitar "Ana", o alert() exibirá a mensagem "Boas vindas, Ana!".
Alternativas à concatenação com + (Template literals):
Embora a concatenação com + funcione, existe uma forma mais moderna e legível de fazer isso em JavaScript, chamada template literals (ou template strings), usando crases (``):
let nomeDoUsuario = prompt('Por favor, digite seu nome:');
alert(`Boas vindas, ${nomeDoUsuario}!`); // Usando template literal
As crases (``) delimitam a string.
${nomeDoUsuario}: Esta sintaxe dentro das crases insere o valor da variável nomeDoUsuario diretamente na string.
Vantagens dos template literals:
Maior legibilidade: O código fica mais fácil de ler e entender, especialmente quando você tem várias variáveis para concatenar.
Facilidade para strings multilinha: Você pode escrever strings que ocupam várias linhas sem precisar usar o operador + repetidamente.
Espero ter ajudado.