Analise o código abaixo retirado de uma páginaHTML5.< !DO...
Analise o código abaixo retirado de uma páginaHTML5.
< html >
< body >
< script >
x => (a+3);
document.write(typeof f);
< /script >
< /body >
< /html >
O resultado do trecho de código do JavaScript será:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - Undefined.
Essa questão exige um entendimento de como o JavaScript trata variáveis e funções, bem como o uso da função typeof
, que retorna uma string indicando o tipo de operando sem avaliação.
No código apresentado, temos uma expressão lambda x => (a+3)
, que por si só já é uma função. No entanto, essa função não foi atribuída a nenhuma variável ou constante. Em seguida, o código tenta imprimir o tipo de f
usando document.write(typeof f)
. A variável f
não foi declarada nem definida em qualquer lugar no código fornecido, portanto, não tem um valor atribuído.
Quando o JavaScript encontra uma variável que não foi declarada, ele retorna undefined
. Isso porque undefined
é o tipo de uma variável que não foi inicializada. O fato de a expressão lambda existir no código não altera o resultado, pois ela não foi atribuída a f
, nem f
foi definida como uma função ou qualquer outro valor.
Portanto, o typeof f
retorna "undefined" porque f
não existe no contexto do código apresentado. É importante notar que null
, float
, function
e number
são tipos que seriam retornados se f
tivesse sido definida apropriadamente como um objeto nulo, um número de ponto flutuante, uma função ou um número, respectivamente.
Assim, ao se deparar com questões que envolvem o uso de typeof
, é crucial verificar se a variável ou função em questão foi devidamente declarada e inicializada no escopo do código apresentado. Isso ajudará a determinar corretamente o tipo de dado esperado pela função typeof
.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Em nenhum momento foi declarado a variável f.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo