Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Existe erro aqui?

estou fazendo as aulas e apareceu esse problema, mas não há nenhum erro, pelo menos não consigo achar nenhum!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

5 respostas

O código parece estar correto à primeira vista, mas o problema pode estar relacionado ao comportamento do prompt. O prompt sempre retorna uma string, mesmo que o usuário não digite nada e apenas pressione "OK". Nesse caso, ele retorna uma string vazia "".

Possíveis causas do problema:

  1. Espaços em branco acidentais:Se o usuário digitar espaços antes ou depois da senha correta, eles contam na comparação. Exemplo: "senhaTeste! ""senhaTeste!".

  2. Sensibilidade a maiúsculas/minúsculas:O código diferencia letras maiúsculas de minúsculas. "senhateste!""senhaTeste!".

  3. Entrada vazia:Se o usuário clicar em "OK" sem digitar nada, o acesso deveria ser negado, mas se o código tiver sido alterado em algum ponto, isso pode interferir.

Como corrigir e melhorar:

Você pode normalizar a entrada do usuário para evitar esses problemas:

let senhaDoSistema = "senhaTeste!";

let senha = prompt("Digite a senha do sistema:");

// Remove espaços extras e ignora diferenças de maiúsculas/minúsculas
if (senha && senha.trim().toLowerCase() === senhaDoSistema.toLowerCase()) {
    alert("Acesso ao sistema garantido");
} else {
    alert("Senha incorreta. Acesso negado.");
}

Explicação das alterações:

  • senha.trim(): Remove espaços em branco no início e no final da senha digitada.
  • toLowerCase(): Torna a comparação insensível a maiúsculas/minúsculas.
  • senha &&: Garante que o campo não esteja vazio antes de fazer a comparação.

Tente esse código e veja se resolve o problema. Por gentileza, lembre-se de avaliar a resposta caso ela tenha solucionado sua dúvida

Mas no caso se eu fizer isso, a senha que eu responder vai ignorar todas as regras para uma senha forte, o que não faz sentido nenhum em questão de proteção. Pelo visto sua resposta foi copiada do chatGPT, posso estar enganado mas não resolve o problema, na verdade cria mais problemas

Realmente não há erro no código, aparentemente o sistema está nos mostrando a "questão resolvida". Eu precisei colocar em multipla escolha e escolher a opção "errada" para seguir.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

eu to nessa questão ai também, quebrando a cabeça, conversei com 2 amigos meus que são devs, mostrei a questão e nenhum achou erro, mas to bugado porque não to entendendo isso, se alguem quiser dar uma luz eu agradeço.

solução!

Olá! Eu fiz esse exercício semana passada. O que aconteceu é que alguém alterou a linha de código que continha o bug e corrigiu. Quando eu fiz o exercício, a linha if (senha === senhaDoSistema){ estava assim: if (senha = senhaDoSistema){ (com apenas um sinal de igual). Vejam minha resolução do exercício e a resposta da Luri abaixo, o que mostra que a linha que continha o erro foi alterada. Por que alteraram não sabemos. Minha resposta para o exercício (semana passada): Para realizarmos uma comparação, existe um comando em JavaScript que podemos utilizar para verificar se um valor é igual a outro. Anteriormente, usamos o sinal de igual para atribuir um valor a uma variável. No entanto, quando queremos fazer uma comparação, usamos um sinal de igual duplo ==. Em if (senha = senhaDoSistema){ está faltando o sinal de igual duplo. Correção: if (senha == senhaDoSistema){ . Vejam a resposta da Luri: Ela respondeu que a linha pode ficar de duas formas: if (senha == senhaDoSistema){ (com 2 sinais de igual, operador de igualdade) ou if (senha === senhaDoSistema){ (com 3 sinais de igual, operador de igualdade estrita).

Captura de tela