Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2023

ProgramaçãoLinguagens de programação
Código
ce154127
Banca
CESPE / CEBRASPE
Órgão
DATAPREV
Ano
2023
Nível
Médio
Cargo
Analista de Tecnologia da Informação - Perfil: Sustentação Tecnológica
Considerando a linguagem de programação JavaScript, julgue o item a seguir.Caso o código a seguir seja executado, o console.log() mostrará que a variável inicio tem valor igual a 1.Q80.png 205×136
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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 const e operadores de incremento

Gabarito: letra E (ERRADO). O código, ao tentar incrementar uma variável declarada com const, lança um erro em tempo de execução (TypeError: Assignment to constant variable), de modo que o console.log() nunca é executado — a variável inicio não chega a ser exibida com valor 1. A regra central é que const cria uma constante cujo valor não pode ser reatribuído, e o operador ++ é justamente uma reatribuição (inicio = inicio + 1).

O enunciado descreve um cenário típico de pegadinha em provas de JavaScript: declarar uma variável com const e, em seguida, tentar modificá-la com um operador de incremento. Para entender por que o item está errado, é preciso dominar três conceitos básicos da linguagem: a diferença entre var, let e const; o que significa reatribuir um valor; e como funcionam os operadores de incremento (++) e decremento (--).

Em JavaScript, const é usado para declarar constantes — ou seja, variáveis cujo vínculo com o valor não pode ser alterado após a inicialização. Diferentemente de let e var, que permitem reatribuição, qualquer tentativa de atribuir um novo valor a uma variável const resulta em erro. O operador ++ (incremento) é açúcar sintático para inicio = inicio + 1, ou seja, é uma reatribuição. Portanto, ao executar inicio++ em uma variável const, o motor do JavaScript lança uma exceção do tipo TypeError, interrompendo a execução do script antes que a linha do console.log() seja alcançada.

Vejamos um exemplo concreto para fixar:

const inicio = 0;
inicio++; // TypeError: Assignment to constant variable
console.log(inicio); // nunca executa

Nesse trecho, a declaração const inicio = 0 cria uma constante. A linha seguinte tenta incrementá-la, o que viola a regra de imutabilidade do vínculo. O erro é lançado imediatamente, e o console.log() não é executado. Se a variável tivesse sido declarada com let ou var, o código funcionaria normalmente e exibiria 1.

A distinção que importa aqui é entre const e let/var. Enquanto const impede a reatribuição, let e var permitem. Essa é a fronteira que a banca explora: o candidato que não lembra que const é imutável pode assumir que o código funciona e marcar "Certo".

NÃO CAIA NESSA!

A banca explora a confusão entre const e let/var. O candidato que não domina a regra de imutabilidade do const pode assumir que o incremento funciona normalmente e marcar "Certo". Lembre-se: const não permite reatribuição, e ++ é uma reatribuição. Com treino, você enxerga essa armadilha de longe 💪.

  1. 1const inicio = 0
  2. 2inicio++ → TypeError
  3. 3console.log nunca executa
LEVEL · soulevel.com.br

Alternativa C — ❌ Incorreta

Afirma que o console.log() mostrará que a variável inicio tem valor igual a 1. Isso estaria correto se inicio fosse declarada com let ou var, pois o incremento funcionaria. No entanto, como a variável é declarada com const, a tentativa de incremento lança um TypeError e o console.log() nunca é executado. O erro específico é ignorar a imutabilidade do const.

Alternativa E — ✅ Correta ⟵ GABARITO

O item está errado porque o código não exibe o valor 1. A declaração const inicio cria uma constante, e o operador ++ tenta reatribuir seu valor, o que viola a regra. O motor do JavaScript lança um erro (TypeError: Assignment to constant variable) e interrompe a execução antes do console.log(). Portanto, a variável inicio não é exibida com valor 1.

Gabarito: letra E (ERRADO).

Link permanente: /questoes/ce154127