1
resposta

[Dúvida] Dúvidas resolução dos desafios

Olá! Fiquei com algumas dúvidas com relação aos desafios da aula 2.

  1. Notei que nos desafios 1,2 e 3 não foi usado o ler para fazer a declaração da variáveis (diaDaSemana, numero, pontuacao). Pq?

  2. No desafio 1, após o primeiro ir existe um “else if”. Na minha resolução eu usei um outro if, apenas. Desse jeito:

// DESAFIO 1

let diaDaSemana = prompt('Qual o dia da semana?');

if(diaDaSemana == 'Sábado'){
     alert('Bom fim de semana!');
 }
 if (diaDaSemana == 'Domingo') {
     alert('Bom fim de semana!');
 }
 else {
     alert('Boa semana!');
 }

Estaria errado?

  1. No desafio 3 foi usado console.log. Na minha resolução eu utilizei o alert. Estaria errado?

  2. No desafio 5, estaria certo concatenar a variável nome usando + ? Exemplo abaixo:

//DESAFIO 5

let nomeDoUsuario = prompt('Por favor, digite seu nome:');
alert ('Boas vindas, ' + nomeDoUsuario + '!')
1 resposta

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.