\n\nÉ correto afirmar sobre esse script que:","inLanguage":"pt-BR","eduQuestionType":"Multiple choice","acceptedAnswer":{"@type":"Answer","text":"B) quando executado, exibe a definição da função teste;. Nesse script, a função teste(x) foi declarada normalmente e não há erro de sintaxe. O detalhe importante é que o comando alert recebeu o nome da função, e não uma chamada da função. Em JavaScript, quando você passa uma função como valor, ela é tratada como objeto e pode ser convertida para texto, exibindo sua representação em código-fonte.\n\nOu seja: teste sozinha representa a própria função; teste() é que executaria a função e devolveria o resultado do return (x / 2). Como não houve execução, nenhum número foi calculado. O alert mostra a definição da função, que é exatamente o que torna o item B correto.\n\nEm linguagem de prova, vale lembrar essa diferença clássica entre referenciar e invocar uma função. É a velha armadilha do JavaScript: faltou os parênteses, e a função ficou só “apresentada”, não “trabalhando”."},"suggestedAnswer":[{"@type":"Answer","text":"A) há um erro de sintaxe que impede sua execução;"},{"@type":"Answer","text":"C) quando executado, exibe o valor 0;"},{"@type":"Answer","text":"D) quando executado, exibe o valor undefined;"},{"@type":"Answer","text":"E) quando executado, o comando alert não é acionado."}]}← Questões de Programação

Programação · FGV · 2023

Questão comentada de Programação

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:

Gabarito: B

Nesse script, a função teste(x) foi declarada normalmente e não há erro de sintaxe. O detalhe importante é que o comando alert recebeu o nome da função, e não uma chamada da função. Em JavaScript, quando você passa uma função como valor, ela é tratada como objeto e pode ser convertida para texto, exibindo sua representação em código-fonte. Ou seja: teste sozinha representa a própria função; teste() é que executaria a função e devolveria o resultado do return (x / 2). Como não houve execução, nenhum número foi calculado. O alert mostra a definição da função, que é exatamente o que torna o item B correto. Em linguagem de prova, vale lembrar essa diferença clássica entre referenciar e invocar uma função. É a velha armadilha do JavaScript: faltou os parênteses, e a função ficou só “apresentada”, não “trabalhando”.

Continue treinando

Questões relacionadas