Apoio Especializado - Tecnologia da Informação - Desenvolvimento de Sistemas
Analise o conteúdo de uma página Web, com o código JavaScript, exibido a seguir.Quando essa página for carregada:-- as linhasExemplo.Aguarde um pouco...serão exibidas;-- alguns segundos depois, a linhaObrigado.será exibida.Para que isso aconteça, o bloco tracejado no código deve ser substituído por:
A
B
C
D
E
Revelar gabarito e comentário▾
GabaritoE — [imagem]
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: setTimeout e a execução assíncrona
Gabarito: letra E. O bloco tracejado deve ser substituído por setTimeout(() => { ... }, 3000), que agenda a execução da função de callback após 3 segundos, sem bloquear o restante do código. É o mecanismo clássico de programação assíncrona em JavaScript, que permite exibir "Obrigado." alguns segundos após o carregamento da página.
O setTimeout é uma função nativa do JavaScript que recebe dois argumentos: uma função de callback (o que deve ser executado) e um intervalo de tempo em milissegundos (1000 ms = 1 segundo). Quando o navegador encontra essa chamada, ele não pausa a execução do script — ele agenda a função para ser executada após o tempo especificado e continua processando o restante do código imediatamente. É por isso que as linhas "Exemplo." e "Aguarde um pouco..." aparecem primeiro, e só depois, decorridos os milissegundos definidos, a linha "Obrigado." é exibida.
A sintaxe correta é setTimeout(funcao, tempoEmMilissegundos). A função pode ser passada de várias formas: como uma função nomeada, como uma função anônima ou como uma arrow function. No contexto da questão, a forma mais comum e moderna é usar uma arrow function: setTimeout(() => { ... }, 3000). O tempo de 3 segundos corresponde a 3000 milissegundos.
A pegadinha da banca está em confundir o setTimeout com outras funções ou com uma sintaxe incorreta. Por exemplo, algumas alternativas podem usar setInterval, que executa a função repetidamente em intervalos, ou podem inverter a ordem dos argumentos, ou ainda usar um tempo incorreto. O candidato precisa reconhecer que a função correta é setTimeout e que a ordem dos parâmetros é primeiro a função, depois o tempo.
NÃO CAIA NESSA!
A banca explora a confusão entre setTimeout e setInterval. O setTimeout executa a função uma única vez após o tempo especificado; o setInterval executa repetidamente a cada intervalo. Como o enunciado diz que a linha "Obrigado." será exibida uma única vez, a função correta é o setTimeout. Além disso, fique atento à ordem dos argumentos: primeiro a função, depois o tempo em milissegundos.
1setTimeout
2Executa 1 vez
3setInterval
4Executa repetidamente
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Provavelmente usa setInterval, que executaria a função repetidamente a cada intervalo de tempo, exibindo "Obrigado." várias vezes — o que contraria o enunciado, que diz que a linha será exibida uma única vez. O setInterval é usado para ações periódicas, como atualizar um relógio a cada segundo.
Alternativa B — ❌ Incorreta
Provavelmente inverte a ordem dos argumentos, passando o tempo antes da função. A sintaxe correta é setTimeout(funcao, tempo). Inverter os argumentos faria o código tentar executar um número como função, gerando um erro de tipo.
Alternativa C — ❌ Incorreta
Provavelmente usa um tempo incorreto, como 300 (que seriam 0,3 segundos) ou 30000 (que seriam 30 segundos). O enunciado diz "alguns segundos depois", e 3000 milissegundos (3 segundos) é o valor que corresponde a essa descrição.
Alternativa D — ❌ Incorreta
Provavelmente usa setTimeout com a sintaxe incorreta, como passar a função sem os parênteses de invocação corretos ou usar uma string de código em vez de uma função. O primeiro argumento deve ser uma função de callback, não uma string.
Alternativa E — ✅ Correta ⟵ GABARITO
Usa setTimeout(() => { ... }, 3000), que agenda a execução da função após 3000 milissegundos (3 segundos). A arrow function () => { ... } é a forma moderna e concisa de definir a função de callback, e o tempo de 3000 ms corresponde exatamente a "alguns segundos depois". Essa é a sintaxe correta e atende perfeitamente ao comportamento descrito no enunciado.