Questão nº 34

Questão de Tecnologia da Informação · FCC TRE-PR 2017 (nº 34)

FCC2017Técnico Judiciário - Área Apoio Especializado - Especialidade Programação de SistemasTecnologia da Informação
Gabarito: Cver comentário ↓

Considere a página HTML abaixo.

<!DOCTYPE html>
<html>
  <head><title>Home</title></head>
  <body>
    <script>
      var cargos = ["Promotor", "Juiz", "Desembargador"];
      var i = 0;
      var texto = "";
      while(cargos[i]) {
        texto += cargos[i] + "<br>";
        i++;
      }
      document.getElementById("exibe").innerHTML = texto;
     </script>
     <p id="exibe"></p>
   </body>
</html>

Para que todos os valores contidos no vetor cargos sejam exibidos pelo navegador,

Resposta comentada

Gabarito Alternativa C

O conceito-chave aqui é que o JavaScript só consegue manipular elementos HTML que já foram carregados e processados pelo navegador. Se o seu código JavaScript tenta encontrar um elemento HTML antes que ele exista na página, ele não vai conseguir.

  • A) Incorreta: Mover o script para o <head> faria com que ele fosse executado ainda mais cedo, antes mesmo de qualquer conteúdo do <body> ser carregado, piorando o problema.
  • B) Incorreta: A condição while(cargos[i]) é a forma correta e idiomática de verificar se um elemento existe no índice i e se ele é um valor "truthy" (verdadeiro) em JavaScript, o que é o caso para strings não vazias. cargos[i]==true compararia o valor da string com o booleano true, o que sempre resultaria em false para as strings do array, impedindo o loop de funcionar corretamente.
  • C) Correta: Quando o navegador encontra a tag <script>, ele executa o JavaScript imediatamente. Se o elemento <p id="exibe"></p> ainda não foi lido e adicionado ao DOM (Document Object Model), document.getElementById("exibe") retornará null. Ao mover a tag <p> para antes do <script>, o elemento já existirá quando o JavaScript tentar acessá-lo, permitindo que o conteúdo seja exibido.
  • D) Incorreta: A instrução texto += cargos[i] (que é texto = texto + cargos[i]) serve para adicionar cada cargo à variável texto. Se fosse texto = cargos[i], a variável texto seria sobrescrita em cada iteração, e no final conteria apenas o último cargo do array.
  • E) Incorreta: document.println() não é uma função JavaScript padrão para manipulação do DOM em navegadores. A forma correta de inserir conteúdo HTML em um elemento existente é usando innerHTML ou textContent.

Fonte: FCC TRE-PR 2017 Técnico Judiciário - Área Apoio Especializado - Especialidade Programação de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho