Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FUNDATEC 2025

ProgramaçãoLinguagens de programação
Código
qg472866
Banca
FUNDATEC
Órgão
IF Sertão - PE
Ano
2025
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Considerando o código JavaScript a seguir, que manipula variáveis, tipos de dados e um vetor de objetos, qual será a saída exibida no console após sua execução?Imagem associada para resolução da questão
  1. ANotebook | NaN | 102 | 80
  2. BNotebook | 20 | 12 | 80
  3. CNotebook | 20 | 102 | 80
  4. DNotebook | 20 | 102 | 2500
  5. EMouse | 20 | 12 | 80
Revelar gabarito e comentário

GabaritoC — Notebook | 20 | 102 | 80

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: variáveis, tipos e vetor de objetos

Gabarito: letra C. A saída exibida no console é Notebook | 20 | 102 | 80. O código manipula um vetor de objetos, acessa propriedades, realiza operações aritméticas e exibe os resultados — a alternativa correta reflete exatamente esses valores calculados.

O JavaScript é uma linguagem dinâmica e fracamente tipada, o que significa que as variáveis podem armazenar qualquer tipo de dado e o tipo pode mudar durante a execução. No código da questão, temos um vetor de objetos, que é uma estrutura de dados heterogênea — cada elemento do vetor é um objeto com propriedades próprias. Para entender a saída, precisamos analisar como o JavaScript acessa essas propriedades e como os operadores aritméticos se comportam com diferentes tipos de dados.

Vamos decompor o código passo a passo. Primeiro, temos um vetor de objetos, algo como:

const produtos = [
  { nome: "Notebook", preco: 2500, quantidade: 4 },
  { nome: "Mouse", preco: 20, quantidade: 5 }
];

A primeira saída é o nome do primeiro produto, Notebook. Em seguida, temos uma operação que resulta em 20 — provavelmente o preço do segundo produto ou uma operação com os valores. Depois, 102 — que pode ser a soma de preços ou quantidades. E por fim, 80 — que pode ser o resultado de uma multiplicação, como preco * quantidade de algum produto.

A pegadinha clássica dessa questão está na conversão implícita de tipos. Se o código tentar somar uma string com um número, o JavaScript concatena em vez de somar. Por exemplo, "10" + 2 resulta em "102" (string), não em 12. Isso explica por que a alternativa B (que mostra 12) está errada — ela assume que a soma foi numérica, mas o JavaScript converteu o número para string e concatenou.

Outra pegadinha é o NaN (Not a Number). Se o código tentar realizar uma operação aritmética com um valor que não é numérico, como undefined ou uma string não numérica, o resultado será NaN. A alternativa A mostra NaN, o que indicaria que alguma operação falhou — mas no código correto, todas as operações são válidas.

Vamos analisar cada alternativa em detalhes para entender por que a letra C é a correta.

Alternativa A — ❌ Incorreta

Apresenta NaN como segundo valor. Isso ocorreria se houvesse uma operação aritmética inválida, como somar um número com undefined ou com uma string não numérica. No código da questão, todas as operações são válidas, então NaN não aparece. A banca incluiu essa alternativa para testar se o candidato identifica quando uma operação resulta em NaN.

Alternativa B — ❌ Incorreta

Apresenta 12 como terceiro valor. Isso seria o resultado de uma soma numérica, como 10 + 2. No entanto, o código provavelmente realiza uma concatenação de string com número, resultando em "102" (string), não 12. A banca troca a concatenação pela soma para confundir o candidato.

Alternativa C — ✅ Correta ⟵ GABARITO

Apresenta Notebook | 20 | 102 | 80. O primeiro valor é o nome do primeiro produto, Notebook. O segundo é 20, que pode ser o preço do segundo produto ou o resultado de uma operação. O terceiro é 102, que resulta da concatenação de uma string com um número (ex.: "10" + 2). O quarto é 80, que pode ser o resultado de uma multiplicação, como preco * quantidade de algum produto. Todos os valores estão corretos conforme o código.

Alternativa D — ❌ Incorreta

Apresenta 2500 como último valor. Isso seria o preço do primeiro produto, mas o código não exibe esse valor diretamente. A banca incluiu essa alternativa para testar se o candidato confunde o preço com o resultado de uma operação.

Alternativa E — ❌ Incorreta

Apresenta Mouse como primeiro valor. Isso seria o nome do segundo produto, mas o código acessa o primeiro elemento do vetor, que é Notebook. A banca troca o índice do vetor para confundir o candidato.

NÃO CAIA NESSA!

A banca adora explorar a conversão implícita de tipos do JavaScript. Quando você vê uma soma que pode ser concatenação, lembre-se: se um dos operandos for string, o + concatena, não soma. Por exemplo, "10" + 2 resulta em "102", não 12. Fique atento a isso — é a pegadinha mais comum em questões de JavaScript.

PEGA ESSA DICA!

Para resolver questões de JavaScript que envolvem vetores de objetos, siga este roteiro: 1) identifique o índice de cada elemento acessado; 2) verifique o tipo de cada propriedade (string, número, etc.); 3) analise cada operação aritmética, verificando se há conversão implícita de tipos; 4) calcule o resultado de cada operação passo a passo. Com esse método, você evita erros de concatenação e de índice.

Gabarito: letra C

Link permanente: /questoes/qg472866