Analise o pretenso código JavaScript a seguir. const xpto = (a, b) => a + b; Sobre esse trecho, é correto afirmar que esse código:
- A)é válido, porque define uma função que retorna a soma de dois números fornecidos como parâmetros;
Correta: o trecho define uma arrow function válida que retorna, de forma implícita, a soma de dois parâmetros.
- B)não compila devido à ausência de um par dos delimitadores “{“ e “}”;
Errada: chaves não são obrigatórias quando a arrow function tem apenas uma expressão no corpo.
- C)não compila porque o símbolo “=>” não é permitido na definição de uma função JavaScript;
Errada: o símbolo => é justamente o operador usado para declarar arrow functions em JavaScript.
- D)não compila porque o símbolo “=>” não é permitido numa declaração const;
Errada: const pode receber uma função normalmente; o problema não é a declaração const.
- E)pode ser compilado, mas gera erro em tempo de execução quando xpto for invocada.
Errada: o código é válido e a invocação da função também funciona normalmente, sem erro em tempo de execução.
Gabarito: A
Em JavaScript, a expressão apresentada usa uma arrow function, isto é, uma função seta. A estrutura básica é bem direta: parâmetros entre parênteses, operador => e, em seguida, a expressão que será retornada. No caso mostrado, a função recebe a e b e devolve a soma deles, sem precisar escrever return nem colocar chaves quando o corpo tem apenas uma expressão. Isso confunde muita gente porque, em outras linguagens ou em funções tradicionais, é comum ver chaves e return explícito. Aqui, porém, o JavaScript permite uma forma mais enxuta. Quando o corpo da arrow function é uma única expressão, o retorno é implícito. Então const xpto = (a, b) => a + b; é um código válido. Além disso, const apenas declara uma variável de referência constante, não impede que ela receba uma função. Ou seja, você pode guardar a função em uma constante sem problema. O símbolo => é justamente o que caracteriza a arrow function na linguagem, então não há erro de compilação por causa dele. Por isso, o gabarito correto é a alternativa A: o trecho define uma função que retorna a soma de dois valores recebidos como parâmetros. Em termos práticos, xpto(2, 3) vai produzir 5, simples assim, sem drama e sem chaves obrigatórias.