Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2023
- 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

- CCerto
- EErrado

GabaritoE — Errado
const e operadores de incrementoGabarito: 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 executaNesse 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".
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 💪.
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.
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