1
resposta

Questionamento sobre questão 6

Luis é apaixonado por tecnologia e está dando seus primeiros passos no mundo da programação. Para praticar lógica de programação, ele decidiu desenvolver um sistema de login de usuário único em que é necessário apenas informar a senha para ver o conteúdo do restante do projeto.

No entanto, ao testar o seu projeto, percebeu que não importava a senha passada para o sistema, o acesso sempre era permitido.

Sabendo que você também está estudando lógica de programação, Luis pediu sua ajuda para que vocês consigam encontrar o bug juntos. Para isso, ele disponibilizou o código que escreveu:

let senhaDoSistema = "senhaTeste!";

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

if (senha = senhaDoSistema){ alert("Acesso ao sistema garantido"); }

Qual alteração você poderia sugerir ao Luis para que o seu sistema funcione como imaginado?

Obs: dei a seguinte resposta

let senhaDoSistema = "senhaTeste!";

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

if (senha == senhaDoSistema){ alert("Acesso ao sistema garantido"); } if (senha != senhaDoSistema){ alert("Acesso ao sistema negado"); }

Porém o sistema não aceitou a condição e solicitou que eu usasse (===) para a resposta correta. O que vocês acham dessa situação? Eu estou errado?

1 resposta

Oi Rammon, tudo bem?

Você não está errado. Na verdade, tanto o operador "==" quanto o operador "===" são usados para comparação em JavaScript, mas eles funcionam de maneiras um pouco diferentes.

O operador "==" compara os valores e ignora o tipo de dado. Por exemplo, se você comparar 2 == "2", isso retornará verdadeiro, porque o valor "2" é igual a 2, mesmo que um seja um número e o outro seja uma string.

Por outro lado, o operador "===" compara tanto o valor quanto o tipo de dado. Portanto, se você comparar 2 === "2", isso retornará falso, porque um é um número e o outro é uma string, mesmo que o valor seja o mesmo.

No seu caso, como você está comparando strings, tanto "==" quanto "===" deveriam funcionar. No entanto, é uma boa prática usar "===" para evitar confusões e erros, já que ele garante que tanto o valor quanto o tipo de dado sejam iguais.

Então, a resposta correta seria:

let senhaDoSistema = "senhaTeste!";

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

if (senha === senhaDoSistema){
    alert("Acesso ao sistema garantido");
}
if (senha !== senhaDoSistema){
    alert("Acesso ao sistema negado");
}

Espero ter ajudado e bons estudos!

Um abraço.