Pular para o conteúdo principal

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

ProgramaçãoLinguagens de programação
Código
qg433568
Banca
CONSULPAM
Órgão
CONAB
Ano
2025
Nível
Superior
Cargo
Analista - Tecnologia da Informação (Desenvolvimento)
Considere o seguinte trecho de código em JavaScript (ES6+) construído por um desenvolvedor:function exemplo(flag) {if (flag) {let valor = 'ativo';} else {var valor = 'inativo';}return valor;}console.log(exemplo(true));Diante do exposto, assinale a alternativa CORRETA.
  1. AO código imprime "ativo", pois a variável valor é declarada dentro do bloco if com let, e como flag é true, essa é a única atribuição executada.
  2. BO código imprime "inativo", pois a declaração com var é movida para o topo da função, e como flag é true, a variável permanece com valor undefined, sendo posteriormente atribuída como "inativo".
  3. CO código lança um erro de referência (ReferenceError), pois a variável valor declarada com let está em escopo de bloco e não é acessível fora do if, enquanto a declaração com var não é executada quando flag é true.
  4. DO código lança um erro de tipo (TypeError), pois a linguagem não permite múltiplas declarações de variáveis com nomes iguais em blocos distintos, mesmo que com let e var.
Revelar gabarito e comentário

GabaritoC — O código lança um erro de referência (ReferenceError), pois a variável valor declarada com let está em escopo de bloco e não é acessível fora do if, enquanto a declaração com var não é executada quando flag é true.

Link permanente: /questoes/qg433568