Questão de Programação — Linguagens de programação — FGV 2023
Programação›Linguagens 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:
Ahá um erro de sintaxe que impede sua execução;
Bquando executado, exibe a definição da função teste;
Cquando executado, exibe o valor 0;
Dquando executado, exibe o valor undefined;
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!