Considerando o código apresentado a seguir, na linguagem Ja...
Considerando o código apresentado a seguir, na linguagem JavaScript (Ecma-262):
var x = [1,2,3];
function y(algo){
'use strict'
console.log('essa variavel é', typeof algo);
}
y(x);
O resultado esperado de sua execução é:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: E - Essa variável é object.
A questão avalia o conhecimento do candidato sobre tipos de dados em JavaScript, mais especificamente, sobre como arrays são classificados pela função typeof
. Em JavaScript, a função typeof
é utilizada para determinar o tipo de uma variável ou expressão. No entanto, quando usamos typeof
com um array, que é uma estrutura de dados especial em JavaScript, o retorno é "object", e não "array" como algumas pessoas podem intuitivamente esperar.
Na linguagem JavaScript, arrays são tecnicamente objetos especializados que possuem propriedades e métodos adicionais que permitem trabalhar com coleções de dados de forma sequencial. Portanto, mesmo sendo um tipo de dado com características próprias, não possuem um tipo de retorno específico do typeof
como "array".
Para as outras alternativas, temos:
- A - Essa variável é desconhecida. Incorreto, pois "desconhecida" não é um tipo retornado por
typeof
. - B - Essa variável é undefined. Incorreto, pois a variável
x
foi definida como um array antes da chamada da funçãoy
. - C - Essa variável é numbers. Incorreto, pois "numbers" não é um tipo retornado por
typeof
; para números, o retorno seria "number" (sem o "s"), e além disso, o tipo é retornado para valores numéricos individuais, não para arrays de números. - D - Essa variável é array. Incorreto, conforme explicado anteriormente, embora a variável
x
seja um array, o retorno dotypeof
será "object".
Portanto, ao executar a função y(x)
com x
sendo um array, o console exibirá "essa variável é object", o que torna a alternativa E a correta.
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
Pegadinha maligna: The typeof operator returns "object" for arrays because in JavaScript arrays are objects.
FONTE: http://www.w3schools.com/js/js_datatypes.asp
Pegadinha do mal
Caí bonito.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo