Questão nº 59
Questão de Informática · FGV TJTO 2022 (nº 59)
FGV2022Técnico Judiciário - InformáticaInformática
Gabarito: Aver comentário ↓
No contexto da linguagem JavaScript, analise o trecho a seguir.
```
hello = (val) => "Hello " + val;
```
Essa definição é equivalente ao trecho:
- A`function hello(val) { return 'Hello ' + val; }` (alternativa correta)
- B
((val == ' ') ? 'Hello ' + val : val) - C`function hello(val) { if (val != '') { return 'Hello ' + val } else { return '' } }`
- D`function hello(val) { return val; }`
- E`((val != ' ') ? val : '')`
Resposta comentada
Gabarito Alternativa A
Funções de seta (ou arrow functions) são uma forma mais curta e moderna de escrever funções em JavaScript. Quando uma função de seta tem apenas uma linha de código e essa linha é uma expressão, o resultado dessa expressão é automaticamente retornado, sem a necessidade da palavra-chave return.
- (A) Correta:
function hello(val) { return 'Hello ' + val; }Esta é a forma tradicional de definir uma função em JavaScript. Ela declara uma função chamadahelloque aceita um parâmetrovale explicitamente retorna a concatenação da string "Hello " com o valor deval. Isso é semanticamente idêntico ao comportamento da função de seta original, que implicitamente retorna a mesma expressão. - (B) Incorreta:
((val == ' ') ? 'Hello ' + val : val)Isso é um operador ternário, que é uma expressão condicional que retorna um valor, mas não define uma função. A questão pede a equivalência da definição de uma função. A armadilha aqui é confundir uma expressão concisa com a definição de uma função. - (C) Incorreta:
function hello(val) { if (val != '') { return 'Hello ' + val } else { return '' } }Esta função adiciona uma lógica condicional (if (val != '')) que não existe na função original. A função original sempre tenta concatenar "Hello " comval, independentemente do valor deval. - (D) Incorreta:
function hello(val) { return val; }Esta função simplesmente retorna o valor devalsem adicionar "Hello ". Não é equivalente. - (E) Incorreta:
((val != ' ') ? val : '')Assim como a alternativa B, isso é um operador ternário, que é uma expressão condicional e não uma definição de função. A armadilha é a mesma: confundir uma expressão concisa com a definição de uma função.
Fonte: FGV TJTO 2022 Técnico Judiciário - Informática (Caderno Tipo 1). Reproduzida para fins de estudo.