Questão nº 47
Questão de Tecnologia da Informação · FGV TJ-AP 2024 (nº 47)
FGV2024Analista Judiciário - TI - Desenvolvimento de SistemasTecnologia da Informação
Gabarito: Ever comentário ↓
Analise o conteúdo de uma página Web, com o código JavaScript, exibido a seguir.
<!DOCTYPE html>
<html>
<body>
<p>Exemplo.</p>
<p>Aguarde um pouco...</p>
<p id="xpto"></p>
<script>
</script>
</body>
</html>
Quando essa página for carregada:
- as linhas Exemplo. e Aguarde um pouco... serão exibidas;
- alguns segundos depois, a linha Obrigado. será exibida.
Para que isso aconteça, o bloco tracejado no código deve ser substituído por:
- A```
document.getElementById("xpto").innerHTML =
setTimeout("Obrigado.", 5000);
``` - B```
function f(p) {
setTimeout(function() { f("Obrigado."); }, 5000);
document.getElementById("xpto").innerHTML = f(p);
}
``` - C```
setTimeout(5, "s");
document.getElementById("xpto").innerHTML
=
"Obrigado.";
``` - D```
setTimeout(5000);
document.getElementById("xpto").innerHTML
=
"Obrigado.";
``` - E```
setTimeout(function() { f("Obrigado."); }, 5000);
function f(p) {
document.getElementById("xpto").innerHTML = p;
}
``` (alternativa correta)
Resposta comentada
Gabarito Alternativa E
setTimeout é uma função JavaScript que permite agendar a execução de um código para um momento futuro, sem travar a execução do restante do programa. Ela recebe como argumentos o código ou função a ser executado e o tempo de espera em milissegundos.
- (A) Incorreta:
setTimeoutretorna um ID numérico do timer, não a string "Obrigado.". A atribuição aoinnerHTMLocorreria imediatamente com esse ID, não com o texto desejado após o tempo. - (B) Incorreta: A função
ftenta chamarsetTimeoutque chamafnovamente, criando uma recursão que não resolve o problema, e a atribuição aoinnerHTMLseria imediata com o retornoundefineddef. - (C) Incorreta: Os argumentos de
setTimeoutestão incorretos (o primeiro deve ser a função/código e o segundo o tempo em milissegundos), e a atribuição aoinnerHTMLocorreria imediatamente, não após um atraso. - (D) Incorreta:
setTimeoutestá incompleto, pois falta o primeiro argumento (a função ou código a ser executado). A atribuição aoinnerHTMLocorreria imediatamente, não após um atraso. Armadilha da banca: Esta alternativa tenta enganar o aluno ao incluir o tempo correto (5000) e a string "Obrigado.", mas falha em estruturar corretamente a chamada desetTimeoutpara que a ação seja atrasada. - (E) Correta:
setTimeoutagenda a execução de uma função anônima para daqui a 5000 milissegundos (5 segundos). Essa função anônima, quando executada, chama a funçãofpassando "Obrigado." como parâmetro. A funçãofentão insere esse texto noinnerHTMLdo elemento comid="xpto", cumprindo o requisito de exibir o texto após o atraso.
Fonte: FGV TJ-AP 2024 Analista Judiciário - TI - Desenvolvimento de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.