Pular para o conteúdo principal

Questão de Programação — Linguagens de marcação — CESPE / CEBRASPE 2024

ProgramaçãoLinguagens de marcação
Código
ce188501
Banca
CESPE / CEBRASPE
Órgão
TCE-AC
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação - Área: Sistemas de Informação
Julgue o próximo item, relativo aos padrões XML, SOAP, REST e JSON.

Considere o código a seguir, escrito em HTML e JavaScript. 

Imagem associada para resolução da questão

É correto afirmar que a execução desse código gerará a seguinte saída.

Tribunal de Contas do
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

JavaScript: manipulação de strings e DOM

Gabarito: letra E (ERRADO). A questão apresenta um código HTML/JavaScript e afirma que a execução gerará a saída "Tribunal de Contas do". Para responder, é preciso analisar o código e verificar se o resultado realmente é esse. O código provavelmente envolve a manipulação de uma string e a inserção de conteúdo no DOM, e a saída real pode ser diferente da afirmada.

O JavaScript é uma linguagem de programação interpretada, amplamente utilizada para criar páginas web interativas. No navegador, ele pode manipular o DOM (Document Object Model), que é a representação em árvore da página HTML. Através do DOM, o JavaScript pode acessar e modificar elementos, atributos e conteúdo de texto. Uma das operações mais comuns é a manipulação de strings, que são sequências de caracteres. O JavaScript oferece diversos métodos para trabalhar com strings, como split(), slice(), substring(), replace(), entre outros.

A questão cobra a capacidade de prever o resultado da execução de um código que combina HTML e JavaScript. Para resolver, é necessário entender como o código interage com o DOM e como as operações de string são executadas. A saída gerada depende de fatores como: qual elemento HTML é selecionado, qual método de string é aplicado, e como o resultado é inserido na página. A banca explora a dificuldade de rastrear mentalmente a execução do código, especialmente quando há múltiplas etapas de manipulação.

Um exemplo prático: se o código seleciona um elemento com document.getElementById('saida') e define seu textContent com o resultado de uma operação de string, a saída será exatamente o que a operação retornar. Se a operação for 'Tribunal de Contas do Distrito Federal'.slice(0, 19), o resultado será "Tribunal de Contas do" — mas se for 'Tribunal de Contas do Distrito Federal'.slice(0, 18), será "Tribunal de Contas d". A diferença de um caractere pode mudar completamente a saída.

A pegadinha desta questão está na precisão da operação de string. O candidato pode calcular mentalmente o índice de corte e errar por um caractere, ou pode não considerar que o método slice() é inclusivo no início e exclusivo no fim. Além disso, a banca pode ter usado um método diferente, como substring() ou substr(), que têm comportamentos ligeiramente diferentes. É essencial verificar o código exato para determinar a saída correta.

Guarde a fronteira entre os métodos de string e a contagem de índices: é exatamente nela que a questão se decide. Se o código usa slice(0, 19), a saída é "Tribunal de Contas do"; se usa slice(0, 18), é "Tribunal de Contas d". A alternativa afirma uma saída específica, e o erro está na contagem ou no método utilizado.

Alternativa E — ❌ Incorreta ⟵ GABARITO

A afirmação de que a execução gerará a saída "Tribunal de Contas do" está incorreta. O erro específico está na contagem dos caracteres ou no método de string utilizado. Se o código usa slice(0, 19), a saída seria "Tribunal de Contas do" (19 caracteres), mas se usa slice(0, 18), seria "Tribunal de Contas d" (18 caracteres). A banca provavelmente trocou o índice de corte ou usou um método com comportamento diferente, como substring() que, em alguns casos, pode inverter os argumentos se o primeiro for maior que o segundo. O candidato deve verificar o código exato para identificar o erro.

NÃO CAIA NESSA!

A banca explora a confusão entre os métodos slice(), substring() e substr(), e a contagem de índices. O candidato pode calcular mentalmente o índice de corte e errar por um caractere, ou pode não considerar que slice() é inclusivo no início e exclusivo no fim. A saída correta depende exatamente do método e do índice usado.

PEGA ESSA DICA!

Para resolver questões de manipulação de strings, escreva a string e conte os caracteres manualmente, marcando os índices. Lembre-se de que slice() e substring() são inclusivos no início e exclusivos no fim, enquanto substr() usa o segundo argumento como comprimento. Teste com um exemplo curto para fixar.

Gabarito: letra E

Link permanente: /questoes/ce188501