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; }
Certa, porque reproduz exatamente a lógica da arrow function: recebe `val` e retorna `"Hello " + val`.
- B)((val == ' ') ? 'Hello ' + val : val)
Errada, porque traz uma condição que não aparece no enunciado e ainda não define uma função equivalente.
- C)function hello(val) { if (val != '') { return 'Hello ' + val } else { return '' } }
Errada, porque adiciona um teste condicional desnecessário e altera o comportamento original da função.
- D)function hello(val) { return val; }
Errada, porque a função apenas devolve `val`, sem fazer a concatenação com "Hello ".
- E)((val != ' ') ? val : '')
Errada, porque também não cria uma função equivalente e ainda retorna apenas o valor, sem a saudação.
Gabarito: A
Em JavaScript, a sintaxe `hello = (val) => "Hello " + val;` usa uma arrow function, que é uma forma mais curta de escrever uma função. Aqui, a função recebe um parâmetro `val` e devolve a concatenação da string "Hello " com esse valor. Como a expressão depois da seta já é o retorno, não precisa escrever `return` nem chaves obrigatoriamente quando há apenas uma expressão. Na prática, isso equivale a declarar uma função tradicional com um parâmetro e um retorno direto da mesma concatenação. A ideia central é simples: entrou um valor, saiu a saudação montada com esse valor. Sem drama, sem firula, só o básico da função fazendo seu trabalho. Por isso, a alternativa correta é a que escreve uma `function hello(val)` e retorna `"Hello " + val;`. As outras opções mudam a lógica, omitem a concatenação ou introduzem condições que não existem no trecho original. Em prova, a banca costuma testar se você reconhece que arrow function com expressão única equivale a uma função comum com `return` explícito.