1
resposta

Variável chute

Inicialmente os instrutores passaram dentro da funcção verificarChute() que a variável chute é igual a let chute = document.querySelector('input').value, porém depois dentro da funcção limparCampo() mudam a variável chute para chute = document.querySelector('input'). A dúvida que eu fiquei é a seguinte, quando ele faz essa troca ele não está mudando o valor do chute, mas também o tipo da variável? Quando ele declarou da primeira vez a variável era do tipo número, ou seja, só pegava o valor digitado no campo, mas agora da segunda vez, a variável chute não passou a ser o próprio elemento "input"? Isso não pode gerar problemas ? Eu não poderia colocar apenas, chute.value = '', dentro da função limparCampo():

function limparCampo() {
    chute.value = '';
    
}
let numeroSecreto = gerarNumeroSecreto();
let tentativas = 1;
console.log(numeroSecreto);

function exibirTextoNaTela(tag, texto) {
  let campo = document.querySelector(tag);
  campo.innerHTML = texto;
}

function exibirMensagemInicial () {
  exibirTextoNaTela('h1','Jogo do número secreto');
  exibirTextoNaTela('p', 'Escolha um número entre 1 e 10');
}

exibirMensagemInicial();



function verificarChute() {
  let chute = document.querySelector('input').value; 
  

  if (chute == numeroSecreto) {
    
      let palavraTentativas = tentativas > 1 ? 'tentativas' : 'tentativa';
      let mensagemTentativas = `Você descobriu o n.úmero secreto com ${tentativas} ${palavraTentativas}!`;
      exibirTextoNaTela('h1', 'Acertou!');
      exibirTextoNaTela('p', mensagemTentativas);
      document.getElementById('reiniciar').removeAttribute('disabled');
  } else {
      if (chute > numeroSecreto) {
        exibirTextoNaTela('p', 'O numero secreto é menor');
      }
      else {
          exibirTextoNaTela('p', 'O número secreto é maior');
      }
        tentativas++;
        limparCampo();
  }

}

function limparCampo() {
    chute = document.querySelector("input");
    chute.value = ''; 
}
1 resposta

Olá Douglas, tudo bem?

Quando você altera a variável chute dentro da função limparCampo() para chute = document.querySelector('input'), você está, de fato, mudando o tipo da variável de uma string (o valor do input) para um elemento HTML (o próprio input).

A sua sugestão de usar chute.value = ''; diretamente dentro da função limparCampo() também é uma solução válida, pois mantém o propósito original da variável chute como sendo o valor do input. Assim, você evita a mudança de tipo da variável e mantém o código mais legível.

Parabéns por ter identificado essa questão! Sua sugestão de usar apenas chute.value = '' é a abordagem adequada e limpa para limpar o campo de input.

Obrigada pela interação no fórum! Continue empenhado e não hesite em retornar ao fórum sempre que tiver dúvidas ou quiser compartilhar mais insights.

Abraços e bons estudos!