Pular para o conteúdo principal

Questão de Programação — JavaScript — VUNESP 2023

ProgramaçãoJavaScript
Código
vu078978
Banca
VUNESP
Órgão
TCM-SP
Ano
2023
Nível
Fundamental
Cargo
Auxiliar Técnico de Controle Externo - Técnico de Informática
Elaborou-se um programa na Linguagem HTML com JavaScript, apresentado a seguir (os traços nas linhas 4 e 10 representam partes do programa que foram omitidas):Imagem associada para resolução da questãoSupõe-se que esse programa será aberto por um navegador como o Chrome ou o Edge. Deseja-se que ele apresente na tela um botão que, ao ser pressionado, exiba a data e hora no formato:Sun Mar 01 2020 23:20:11 GMT-0300 (Horário Padrão de Brasília)Para tanto, os traços deverão ser substituídos, respectivamente, por:
  1. Aonchange e Date()
  2. Bonchange e DayHour()
  3. Conclick e Date()
  4. Donclick e Day()Hour()
  5. Eonclick e DayHour()
Revelar gabarito e comentário

GabaritoC — onclick e Date()

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: eventos e objeto Date

Gabarito: letra C. A lacuna da linha 4 deve ser preenchida com onclick, pois o botão deve reagir ao clique do usuário, e a lacuna da linha 10 com Date(), pois é o construtor nativo do JavaScript que cria um objeto representando a data e hora atuais — exatamente o que o formato Sun Mar 01 2020 23:20:11 GMT-0300 exige. As demais alternativas trocam o evento (onchange) ou inventam funções que não existem na linguagem (DayHour(), Day()Hour()).

A ideia por trás

A questão testa dois conhecimentos básicos de JavaScript para a web: eventos de HTML e o objeto Date. Vamos por partes.

1. Eventos: Em HTML, os atributos on* (como onclick, onchange, onmouseover) são manipuladores de eventos inline — eles associam uma função JavaScript a uma ação do usuário. O onclick dispara quando o elemento é clicado; o onchange dispara quando o valor de um campo de formulário (como <input>, <select>, <textarea>) é alterado e o campo perde o foco. Como o programa deseja que a data/hora seja exibida "ao ser pressionado" o botão, o evento correto é o onclick — o onchange não se aplica a um botão comum, pois ele não tem um "valor" que muda.

2. Objeto Date: O JavaScript possui um objeto nativo chamado Date, usado para trabalhar com datas e horas. Para criar uma instância com a data e hora atuais, usa-se o construtor new Date() (ou, em muitos contextos, simplesmente Date()). Quando você exibe esse objeto (por exemplo, via alert() ou document.write()), ele é convertido para uma string no formato local, como Sun Mar 01 2020 23:20:11 GMT-0300 (Horário Padrão de Brasília). Não existe uma função nativa chamada DayHour() ou Day()Hour() — essas são invenções dos distratores.

3. Exemplo prático: Imagine o código:

<button onclick="alert(new Date())">Clique aqui</button>

Ao clicar, o navegador exibirá um alerta com a data e hora atuais no formato mostrado na questão. Se usássemos onchange, nada aconteceria ao clicar, pois o evento não é disparado por um clique simples.

4. A pegadinha: A banca explora a confusão entre onclick e onchange (eventos de interação) e entre Date() e funções inventadas (DayHour(), Day()Hour()). O candidato que não domina os eventos ou o objeto Date pode cair nas alternativas A ou B (que usam onchange) ou nas alternativas D e E (que usam funções inexistentes).

5. O critério decisivo: Para acertar, basta lembrar: (a) botão que reage a clique → onclick; (b) data/hora atual → Date(). É exatamente essa combinação que a alternativa C apresenta.

JavaScript: evento + data
  • 1Evento do botão
    • onclick
      • Dispara ao clicar
    • onchange
      • Dispara ao alterar valor de formulário
  • 2Objeto Date
    • Date()
      • Data e hora atuais
    • DayHour() / Day()Hour()
      • Funções inexistentes
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Usa onchange na linha 4. O evento onchange é disparado quando o valor de um campo de formulário é alterado e o campo perde o foco — não quando um botão é clicado. Um botão comum não tem um "valor" que muda, então onchange não produziria o efeito desejado. O correto é onclick.

Alternativa B — ❌ Incorreta

Usa onchange (mesmo erro da alternativa A) e DayHour() na linha 10. DayHour() não é uma função nativa do JavaScript — não existe na linguagem. O correto é Date().

Alternativa C — ✅ Correta ⟵ GABARITO

Usa onclick na linha 4, que dispara a ação quando o botão é pressionado, e Date() na linha 10, que cria um objeto com a data e hora atuais. A combinação atende exatamente ao requisito do enunciado: ao clicar, exibe a data/hora no formato Sun Mar 01 2020 23:20:11 GMT-0300.

Alternativa D — ❌ Incorreta

Usa onclick (correto), mas Day()Hour() na linha 10. Day() e Hour() não são funções nativas do JavaScript — não existem na linguagem. O correto é Date().

Alternativa E — ❌ Incorreta

Usa onclick (correto), mas DayHour() na linha 10. DayHour() não é uma função nativa do JavaScript — não existe na linguagem. O correto é Date().

NÃO CAIA NESSA!

A banca troca o evento onclick (clique) por onchange (mudança de valor em formulário) e inventa funções como DayHour() e Day()Hour() para confundir quem não conhece o objeto Date. Lembre-se: botão que reage a clique → onclick; data/hora atual → Date(). Com esse par na cabeça, você elimina as outras quatro alternativas de imediato.

Gabarito: letra C

Link permanente: /questoes/vu078978