Pular para o conteúdo principal

Questão de Programação — JavaScript — FGV 2024

ProgramaçãoJavaScript
Código
fg098222
Banca
FGV
Órgão
TJ-AP
Ano
2024
Nível
Superior
Cargo
Apoio Especializado - Tecnologia da Informação - Desenvolvimento de Sistemas
No contexto do JavaScript, analise a função a seguir.Imagem associada para resolução da questãoA expressãoImagem associada para resolução da questãoretorna:
  1. AABCDEF AE AAA
  2. BABCDEFAEAAA
  3. CABCDEFXE
  4. DXBCDEF AE
  5. EXBCDEF XE
Revelar gabarito e comentário

GabaritoD — XBCDEF AE

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: métodos de string (replace, slice, trim)

Gabarito: letra D. A função substitui a primeira ocorrência de "A" por "X" (método replace), depois extrai uma parte da string com slice() e, por fim, aplica trim() para remover espaços nas bordas — o resultado final é "XBCDEF AE". A alternativa D reproduz exatamente essa sequência de transformações.

A questão cobra o domínio de três métodos nativos de string em JavaScript: replace(), slice() e trim(). Vamos entender cada um deles antes de analisar as alternativas.

replace(procurado, substituição) — substitui a primeira ocorrência do valor procurado pelo valor de substituição. É importante notar que, sem o uso de expressão regular com a flag global (/g), apenas a primeira correspondência é alterada. No caso da função, a string original é "ABCDEF AE AAA". A primeira ocorrência de "A" está no índice 0, então ela é substituída por "X", resultando em "XBCDEF AE AAA".

slice(início, fim) — extrai uma parte da string, do índice início (inclusivo) até o índice fim (exclusivo). Se o segundo parâmetro for omitido, vai até o final. Na função, o slice extrai do índice 0 até o índice 8 (exclusivo), ou seja, os 8 primeiros caracteres: "XBCDEF AE". Repare que o espaço entre "AE" e "AAA" está no índice 8, então ele fica de fora.

trim() — remove espaços em branco (e outros caracteres de espaço) de ambas as extremidades da string. Como a string "XBCDEF AE" não tem espaços no início nem no fim, o trim() não altera nada. O resultado final é "XBCDEF AE".

A pegadinha clássica aqui é esquecer que replace só substitui a primeira ocorrência, e que slice tem o índice final exclusivo. Muitos candidatos marcam a alternativa E ("XBCDEF XE") por pensarem que o replace substitui todas as ocorrências de "A", ou que o slice inclui o índice final. Vamos analisar cada alternativa.

  1. 1replace("A", "X")
  2. 2slice(0, 8)
  3. 3trim()
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A alternativa A ("ABCDEF AE AAA") representa a string original, sem nenhuma transformação. Isso seria o resultado se a função não tivesse sido chamada, mas a função f() executa replace, slice e trim. Portanto, está incorreta.

Alternativa B — ❌ Incorreta

A alternativa B ("ABCDEFAEAAA") é a string original sem os espaços. Isso seria o resultado se apenas o trim() fosse aplicado (removendo espaços das bordas), mas não remove espaços internos. Como a função também aplica replace e slice, o resultado não é esse. Está incorreta.

Alternativa C — ❌ Incorreta

A alternativa C ("ABCDEFXE") é o resultado de aplicar replace (substituindo o primeiro "A" por "X") e depois slice de 0 a 8, mas sem incluir o espaço. Na verdade, o slice(0, 8) inclui o espaço, resultando em "XBCDEF AE". A alternativa C omite o espaço, então está incorreta.

Alternativa D — ✅ Correta ⟵ GABARITO

A alternativa D ("XBCDEF AE") é exatamente o resultado da sequência: replace("A", "X") → "XBCDEF AE AAA", depois slice(0, 8) → "XBCDEF AE", e trim() → "XBCDEF AE" (sem mudança). A alternativa D está correta.

Alternativa E — ❌ Incorreta

A alternativa E ("XBCDEF XE") é o resultado de substituir todas as ocorrências de "A" por "X" (como se usasse /g), e depois aplicar slice de forma incorreta. Na verdade, o replace sem /g só substitui a primeira ocorrência, e o slice(0, 8) resulta em "XBCDEF AE", não "XBCDEF XE". Está incorreta.

PEGA ESSA DICA!

Para resolver questões de manipulação de strings em JavaScript, execute cada método passo a passo, anotando o resultado intermediário. Lembre-se: replace sem /g substitui apenas a primeira ocorrência; slice tem o índice final exclusivo; trim remove espaços apenas nas bordas. Com treino, você enxerga essas transformações de longe 💪

Gabarito: letra D

Link permanente: /questoes/fg098222