Questão nº 46
Questão de Tecnologia da Informação · FGV TJ-AP 2024 (nº 46)
FGV2024Analista Judiciário - TI - Desenvolvimento de SistemasTecnologia da Informação
Gabarito: Dver comentário ↓
No contexto do JavaScript, analise a função a seguir.
```
function f(t) {
return t.replace("A","X").slice(1, 10).trim();
}
```
A expressão
```
f(" ABCDEF AE AAA ")
```
retorna:
- AABCDEF AE AAA
- BABCDEFAEAAA
- CABCDEFXE
- DXBCDEF AE (alternativa correta)
- EXBCDEF XE
Resposta comentada
Gabarito Alternativa D
Em JavaScript, métodos de string podem ser encadeados, e cada método opera sobre o resultado do método anterior. É crucial entender a funcionalidade exata de cada método, especialmente replace() que, sem uma expressão regular global, substitui apenas a primeira ocorrência.
- (A) Incorreta: Esta alternativa ignora a substituição do 'A' por 'X', o corte da string (
slice) e a remoção de espaços (trim). - (B) Incorreta: Esta alternativa ignora a substituição do 'A' por 'X' e o corte da string, além de remover todos os espaços, o que não é feito por
trim(). - (C) Incorreta: Esta alternativa não corresponde ao resultado de nenhuma das operações na ordem correta.
- (D) Correta: A execução passo a passo é:
t.replace("A","X"): A string original" ABCDEF AE AAA "tem o primeiro 'A' (na posição 1) substituído por 'X'. O resultado é" XBCDEF AE AAA "..slice(1, 10): Este método extrai caracteres do índice 1 (inclusive) até o índice 10 (exclusivo) da string resultante.- String:
" XBCDEF AE AAA " - Índices:
0123456789... - Caracteres:
XBCDEF AE ... - O
slice(1, 10)resulta em"XBCDEF AE".
- String:
.trim(): Remove espaços em branco do início e do fim da string. A string"XBCDEF AE"não possui espaços em branco nas extremidades, então permanece inalterada.
O resultado final é"XBCDEF AE".
- (E) Incorreta: Esta é a alternativa mais tentadora. A armadilha aqui é pensar que
replace("A","X")substitui todas as ocorrências de 'A' por 'X'. Se isso acontecesse, a string se tornaria" XBCDEF XE XXX ". Aplicando.slice(1, 10)a essa string, obteríamos"XBCDEF XE", e.trim()não alteraria. No entanto, em JavaScript,String.prototype.replace()sem uma expressão regular com a flag/g(global) substitui apenas a primeira ocorrência encontrada.
Fonte: FGV TJ-AP 2024 Analista Judiciário - TI - Desenvolvimento de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.