Questão de Programação — Linguagens de programação — VUNESP 2024
Programação›Linguagens de programação
Código
vu081589
Banca
VUNESP
Órgão
DESENVOLVE-SP
Ano
2024
Nível
Superior
Cargo
Analista de Sistemas
Analise o programa a seguir, elaborado na linguagem HTML e Javascript. Alguns elementos foram substituídos por (a) e (b).Quando esse programa é aberto por um navegador que suporte HTML e Javascript, como o Google ou o Edge, é exibido o valor 1000.Dessa forma, os valores de (a) e (b) são, respectivamente:
A(a) calc e (b) *
B(a) calc e (b) ^
C(a) let e (b) ^^
D(a) let e (b) **
E(a) let e (b) exp
Revelar gabarito e comentário▾
GabaritoD — (a) let e (b) **
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”.
Operadores e declaração de variáveis em JavaScript
Gabarito: letra D — (a) let e (b) **. O programa exibe 1000, que é o resultado de 10 elevado à potência 3 (10³ = 1000). Em JavaScript, o operador de exponenciação é **, e let é a palavra-chave usada para declarar variáveis com escopo de bloco. As demais alternativas trocam o operador de potência por símbolos de outras linguagens ou por operadores inexistentes.
O cerne da questão está em dois conhecimentos básicos de JavaScript: como declarar uma variável e qual operador realiza a exponenciação. Vamos por partes.
Declaração de variáveis em JavaScript — a linguagem oferece três formas principais: var, let e const. A diferença entre elas está no escopo e na possibilidade de reatribuição. var tem escopo de função (ou global, se declarada fora de qualquer função), enquanto let e const têm escopo de bloco (delimitado por {}). const não permite reatribuição, enquanto var e let permitem. Na prática moderna, let é a escolha padrão para variáveis que precisam ser reatribuídas, e const para valores que não mudam. A alternativa (a) só poderia ser let ou var — calc não é uma palavra-chave de declaração em JavaScript (é uma função CSS), e exp é um método de Math para exponenciação, não uma declaração.
Operador de exponenciação — em JavaScript, a potência é calculada com o operador ** (introduzido no ECMAScript 2016 / ES7). Por exemplo, 10 ** 3 resulta em 1000. Antes do ES7, usava-se Math.pow(10, 3). O operador ^ em JavaScript é o XOR bit a bit (ex.: 10 ^ 3 = 9), não exponenciação — essa é uma pegadinha clássica para quem vem de outras linguagens como Python, onde ** também é potência, mas em algumas linguagens como Pascal ou Fortran usa-se ^ ou **. O operador ^^ não existe em JavaScript, e exp é um método de Math (Math.exp(x) calcula e^x), não um operador.
Por que 1000? — o programa provavelmente declara uma variável com let e atribui a ela o resultado de uma exponenciação. Se a variável recebe 10 ** 3, o valor é 1000. A banca substituiu let por (a) e ** por (b), e o candidato precisa identificar ambos para chegar ao resultado.
A pegadinha central é a troca do operador de potência: ^ parece intuitivo (muitas calculadoras usam ^ para potência), mas em JavaScript ele é XOR bit a bit. O candidato que não conhece o operador ** pode cair na alternativa B. Além disso, calc e exp são distratores que parecem plausíveis para quem conhece CSS (calc()) ou matemática (exp), mas não são declaração de variável nem operador de potência em JavaScript.
Guarde a fronteira: let/const/var são as únicas formas de declarar variável, e ** é o único operador de exponenciação em JavaScript. É exatamente nesses dois pontos que as alternativas se dividem.
JavaScript
1Declaração de variável
var (escopo de função)
let (escopo de bloco)
const (escopo de bloco, sem reatribuição)
2Exponenciação
** (operador ES7)
Math.pow(x, y)
^ é XOR bit a bit
^^ não existe
exp é método de Math
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
calc não é uma palavra-chave de declaração de variável em JavaScript. calc() é uma função do CSS usada para cálculos de dimensões (ex.: width: calc(100% - 20px)). Além disso, * é o operador de multiplicação, não de exponenciação — 10 * 3 resultaria em 30, não 1000.
Alternativa B — ❌ Incorreta
Aqui está a pegadinha principal. calc continua errado como declaração de variável. E ^ em JavaScript é o operador XOR bit a bit, não exponenciação. 10 ^ 3 em binário é 1010 ^ 0011 = 1001 = 9, não 1000. O candidato que confunde ^ com potência (por causa de calculadoras ou outras linguagens) cai nesta alternativa.
Alternativa C — ❌ Incorreta
let está correto como declaração de variável, mas ^^ não é um operador válido em JavaScript. Não existe operador de exponenciação com dois acentos circunflexos. O único operador de potência é **.
Alternativa D — ✅ Correta ⟵ GABARITO
let é a palavra-chave correta para declarar uma variável com escopo de bloco, e ** é o operador de exponenciação do JavaScript. Com let x = 10 ** 3, o valor de x é 1000, exatamente o que o programa exibe. Esta é a combinação que produz o resultado esperado.
Alternativa E — ❌ Incorreta
let está correto, mas exp não é um operador — é um método do objeto Math (Math.exp(x) retorna e^x). Para obter 1000, seria necessário Math.pow(10, 3) ou 10 ** 3, nunca exp como operador.
NÃO CAIA NESSA!
A banca explora a confusão entre o operador de exponenciação de JavaScript (**) e o símbolo ^, que em muitas calculadoras e outras linguagens representa potência, mas em JavaScript é XOR bit a bit. Além disso, calc (função CSS) e exp (método de Math) são distratores que parecem plausíveis para quem mistura conceitos de CSS e matemática. Com treino, você reconhece essas trocas de longe 💪
PEGA ESSA DICA!
Para questões de JavaScript, memorize os operadores básicos: + (adição), - (subtração), * (multiplicação), / (divisão), % (módulo), ** (exponenciação), ++ (incremento), -- (decremento). E lembre-se: ^ é XOR bit a bit, não potência. Declaração de variável: var, let, const — nunca calc ou exp.