Questão nº 51

Questão de Tecnologia da Informação · FGV MP-SC 2022 (nº 51)

FGV2022Analista em Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Bver comentário ↓

Analise o código JavaScript exibido a seguir.

```
var numeros = [4,9,16];
var xpto = numeros.map(function(num) {
return num << 2;
});
```

Após a execução desse trecho de código, os valores de numeros e xpto são, respectivamente:

Resposta comentada

Gabarito Alternativa B

O método .map() não altera o array original; ele cria um novo array com os resultados da função aplicada a cada elemento. O operador << (deslocamento à esquerda) multiplica o número por 2n2^n, onde nn é o valor à direita. Aqui, num << 2 equivale a num * 4.

  • (A) Incorreta: numeros não vira undefined; o array original permanece intacto após .map().
  • (B) Correta: numeros continua [4,9,16] (imutável) e xpto recebe [16,36,64], pois 4×4=164 \times 4 = 16, 9×4=369 \times 4 = 36, 16×4=6416 \times 4 = 64. O << 2 é uma pegadinha visual: parece "shift" de bits, mas o resultado é exatamente a multiplicação por 4.
  • (C) Incorreta: numeros não vira null; e os valores calculados estão errados (não são [0,1,4]).
  • (D) Incorreta: numeros está correto, mas xpto não é Null (null em JS é diferente de undefined e não é o retorno de .map()).
  • (E) Incorreta: numeros não é modificado para [16,36,64]; e xpto não é Undefined (é um array válido). A armadilha aqui é achar que .map() altera o original, mas ele retorna um novo array.

Fonte: FGV MP-SC 2022 Analista em Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho