Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FGV 2023

ProgramaçãoLinguagens de programação
Código
fg065358
Banca
FGV
Órgão
PGM - Niterói
Ano
2023
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Considere uma página Web que exibe somente um botão. Quando essa página é carregada, ou o botão é clicado, a data corrente é exibida.O trecho de um script que implementa corretamente essa lógica é:
  1. A<html><body><button onclick, onload="XPTO()">Cliqueaqui...</button><script>function XPTO() {alert();}</script></body></html>
  2. B<html><body><button onclick="XPTO()">Cliqueaqui...</button><script>function XPTO() {alert(Date());}</script></body></html>
  3. C<html><body><button onload, onclick="XPTO()">Cliqueaqui...</button><script>function onload XPTO() {alert();}</script></body></html>
  4. D<html><body onload="XPTO()"><button onclick="XPTO()">Cliqueaqui...</button><script>function XPTO() {alert(Date());}</script></body></html>
  5. E<html><body onload="XPTO()"<button onclick="XPTO()">Cliqueaqui...</button>><script>function onload XPTO(Date()) {}</script></body></html>
Revelar gabarito e comentário

GabaritoD — <html> <body onload="XPTO()"> <button onclick="XPTO()">Clique aqui...</button> <script> function XPTO() {alert(Date());} </script> </body> </html>

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”.

Eventos HTML e JavaScript: onload e onclick

Gabarito: letra D. A alternativa D é a única que implementa corretamente a lógica: ao carregar a página, o evento onload no elemento <body> chama a função XPTO(), e ao clicar no botão, o evento onclick também chama a mesma função. A função XPTO() exibe a data atual com alert(Date()). As demais alternativas apresentam erros de sintaxe ou omitem o evento de carregamento da página.

A questão testa o conhecimento sobre atributos de eventos HTML e declaração de funções JavaScript. O evento onload deve estar no elemento <body> (ou no <window>), enquanto onclick deve estar no botão. Ambos devem apontar para uma função definida no script.

Alternativa A — ❌ Incorreta

O atributo onclick, onload="XPTO()" no botão é inválido. Não se pode combinar dois eventos em um único atributo HTML. Além disso, o evento de carregamento da página não está presente no <body>, e a função XPTO() chama alert() sem argumento, não exibindo a data.

Alternativa B — ❌ Incorreta

O botão possui onclick="XPTO()" corretamente, mas falta o evento onload no <body> para exibir a data ao carregar a página. A função está correta (alert(Date())), mas a lógica de exibição no carregamento não é atendida.

Alternativa C — ❌ Incorreta

Assim como em A, o atributo onload, onclick="XPTO()" é inválido. Além disso, a declaração function onload XPTO() está incorreta: a palavra onload não pode preceder o nome da função; a sintaxe correta é function XPTO(). A função também chama alert() sem argumento.

Alternativa D — ✅ Correta ⟵ GABARITO

O código está correto:

  • <body onload="XPTO()"> dispara a função ao carregar a página.

  • <button onclick="XPTO()"> dispara a função ao clicar.

  • A função function XPTO() {alert(Date());} exibe a data atual (o construtor Date() retorna a data como string).

  • Toda a sintaxe HTML e JavaScript está válida.

Alternativa E — ❌ Incorreta

A sintaxe está quebrada: a tag <body> não fecha corretamente (o atributo onload fica solto após a quebra de linha). A declaração function onload XPTO(Date()) {} é inválida — onload não pode estar entre function e o nome, e Date() não pode ser passado como parâmetro na declaração.

NÃO CAIA NESSA!

A banca explora erros comuns de sintaxe: (1) usar onload diretamente no botão, quando deveria estar no <body>; (2) declarar função com function onload XPTO(...) em vez de function XPTO(...); (3) omitir o evento onload completamente. Lembre-se: para executar código assim que a página carrega, o evento deve estar no <body> ou <window>, não no elemento que será clicado.

Gabarito: letra D.

Link permanente: /questoes/fg065358