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.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!