1
resposta

Minha resposta

acredito que o erro está no if, que está apenas atribuindo = e não comparando ==, deve-se acrescentar mais um sinal de igual.
O correto seria:

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

Assim teria mais lógica; se colocasse a senha errada apareceria um alert informando que a senha está incorreta

1 resposta

Olá, Vinicius, como vai?

Sua análise do código está correta. O problema realmente está no uso de um único sinal de igual, o que faz com que a expressão não realize uma comparação, mas sim uma atribuição.

Ao usar somente um sinal de igual, o JavaScript atribui o valor de senhaDoSistema à variável senha. Como o valor senhaDoSistema não é um valor nulo, indefinido, zero, uma string vazia, ou false, o if sempre será avaliado como verdadeiro. Isso explica porque o acesso é sempre permitido, independentemente do que o usuário digite.

Usar == é a forma correta de realizar uma comparação simples de valores em JavaScript. Para uma verificação mais rigorosa, que compara tanto o valor quanto o tipo de dado, você poderia utilizar ===. Por exemplo, 2 == '2' retornaria verdadeiro, enquanto 2 === '2' retornaria falso.

É por meio de análises como essa que desenvolvemos nosso raciocínio lógico na programação. Continue compartilhando suas soluções no fórum.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!