Pular para o conteúdo principal

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

ProgramaçãoLinguagens de programação
Código
ce176789
Banca
CESPE / CEBRASPE
Órgão
MPE-TO
Ano
2024
Nível
Superior
Cargo
Analista Ministerial Especializado - Área de Atuação: Análise de Sistemas
Em relação à linguagem de programação NodeJS, julgue o item a seguir.Caso o ambiente e o programa não apresentem nenhum tipo de erro ou exceção, a execução do código a seguir terá como resultado 4 não é primo.function isPrime(number) {return new Promise((resolve, reject) =>{if (number <= 1) {reject('$ {number} não é primo');} else {for (let i = 2; i <=Math.sqrt(number); i++) {if (number % i === “0”) {reject('$ {number} não é primo');}}resolve('$ {number} é primo');}});}isPrime(4).then(result =>console.log(result)).catch(error =>console.error(error));
  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”.

Node.js - Promises e sintaxe

Gabarito: ❌ ERRADO. O código apresentado contém erros de sintaxe que impedem sua execução, portanto a afirmação de que o resultado seria "4 não é primo" é incorreta. A utilização de aspas curvas “0” e a sintaxe inválida de template literal ('$ {number}' com espaço) geram erros de sintaxe, contrariando a premissa de que não há erros.

Análise do código

A função isPrime retorna uma Promise, e sua lógica para verificar se um número é primo está conceitualmente correta: rejeita para números ≤ 1 ou divisíveis por algum i, e resolve caso contrário. No entanto, o código contém dois problemas graves de sintaxe:

  1. Aspas curvas ( e ) no lugar de aspas retas (") ou crases (` `). Em JavaScript, strings devem ser delimitadas por ", ' ou `. O trecho number % i === “0”` usa aspas curvas, que são interpretadas como identificadores inválidos, gerando um SyntaxError.

  1. Template literal malformado: a string '$ {number} não é primo' usa aspas simples, não crases. Para interpolar variáveis, é necessário usar crases (` `) e numbersemespac\coentre{number}` **sem espaço** entre ` e {. Portanto, o texto entre aspas simples é uma string literal contendo o caractere eoespac\co,na~oumaexpressa~ointerpolada.Assim,mesmoqueocoˊdigoexecutasse,amensagemdeerroseria"` e o espaço, não uma expressão interpolada. Assim, mesmo que o código executasse, a mensagem de erro seria `" {4} não é primo" (com o cifrão e espaço), e não "4 não é primo"`.

Conclusão

Como o código possui erros de sintaxe, ele jamais seria executado sem lançar uma exceção. A premissa do enunciado ("sem nenhum tipo de erro ou exceção") é violada. Portanto, a afirmação está errada.

PEGA ESSA DICA!

Em questões de CESPE, fique atento a detalhes de sintaxe: aspas curvas, ponto-e-vírgula, chaves mal colocadas e template literals. Pequenos deslizes tornam a afirmativa falsa.

Gabarito: ❌ ERRADO.

Link permanente: /questoes/ce176789