Pular para o conteúdo principal

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

ProgramaçãoLinguagens de programação
Código
fg072438
Banca
FGV
Órgão
TJ-RN
Ano
2023
Nível
Superior
Cargo
Analista Judiciário - Tecnologia de Informação – Análise de Sistemas
No contexto de um script JavaScript numa página Web, considere o trecho a seguir.<script>function teste(x) {return (x / 2);}alert (teste);</script>É correto afirmar sobre esse script que:
  1. Ahá um erro de sintaxe que impede sua execução;
  2. Bquando executado, exibe a definição da função teste;
  3. Cquando executado, exibe o valor 0;
  4. Dquando executado, exibe o valor undefined;
  5. Equando executado, o comando alert não é acionado.
Revelar gabarito e comentário

GabaritoB — quando executado, exibe a definição da função teste;

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 – Referência de função em alert

Gabarito: letra B. O código não possui erro de sintaxe e, quando executado, o comando alert(teste) exibe a definição da função teste, pois a função é passada como referência (sem parênteses) e, ao ser convertida para string, mostra seu código fonte.

Análise das alternativas

Alternativa A — ❌ Incorreta

Não há erro de sintaxe. A função teste é definida corretamente com a palavra-chave function, parâmetro x e corpo return (x / 2);. O código é perfeitamente válido.

Alternativa B — ✅ Correta ⟵ GABARITO

Em JavaScript, quando uma função é passada como argumento para alert (ou qualquer contexto que exija uma string), ela é convertida para string por meio do método toString(), que retorna o código fonte da função. Assim, alert(teste) exibirá:

function teste(x) {
return (x / 2);
}

Alternativa C — ❌ Incorreta

O valor 0 seria exibido apenas se a função fosse invocada com teste(0) ou similar. Como não há chamada (teste()), nenhum retorno é calculado.

Alternativa D — ❌ Incorreta

A função teste é um objeto do tipo Function, não undefined. Se a variável não existisse, seria undefined, mas ela foi definida.

Alternativa E — ❌ Incorreta

O comando alert é executado sim. O código não tem nenhuma condição que impeça sua execução.

NÃO CAIA NESSA!

A banca explora a diferença entre alert(teste) e alert(teste()). No primeiro, a função é passada como objeto (e seu código é exibido); no segundo, ela é invocada, e o valor retornado (no caso, x/2 com x indefinido resultaria em NaN) seria exibido. Fique atento aos parênteses!

Conclusão: A alternativa correta é a letra B.

Link permanente: /questoes/fg072438