--- id: 587d7b87367417b2b2512b43 title: Use Arrow Functions to Write Concise Anonymous Functions challengeType: 1 videoUrl: '' localeTitle: Use as funções de seta para escrever funções anônimas concisas --- ## Description
Em JavaScript, geralmente não precisamos nomear nossas funções, especialmente ao passar uma função como um argumento para outra função. Em vez disso, criamos funções inline. Não precisamos nomear essas funções porque não as reutilizamos em nenhum outro lugar. Para conseguir isso, geralmente usamos a seguinte sintaxe:
const myFunc = function () {
const myVar = "valor";
return myVar;
}
ES6 nos fornece o açúcar sintático para não ter que escrever funções anônimas dessa maneira. Em vez disso, você pode usar a sintaxe da função de seta :
const myFunc = () => {
const myVar = "valor";
return myVar;
}
Quando não há corpo da função e apenas um valor de retorno, a sintaxe da função de seta permite omitir o return da palavra-chave, bem como os colchetes ao redor do código. Isso ajuda a simplificar funções menores em instruções de uma linha:
const myFunc = () => "valor"
Este código ainda retornará value por padrão.
## Instructions
Reescreva a função atribuída à variável magic que retorna um novo Date() para usar a sintaxe da função de seta. Também certifique-se de que nada seja definido usando a palavra-chave var .
## Tests
```yml tests: - text: O usuário substituiu a palavra-chave var . testString: 'getUserInput => assert(!getUserInput("index").match(/var/g), "User did replace var keyword.");' - text: magic deve ser uma variável constante (usando const ). testString: 'getUserInput => assert(getUserInput("index").match(/const\s+magic/g), "magic should be a constant variable (by using const).");' - text: magic é uma function . testString: 'assert(typeof magic === "function", "magic is a function.");' - text: magic() retorna a data correta. testString: 'assert(magic().getDate() == new Date().getDate(), "magic() returns correct date.");' - text: palavra-chave de function não foi usada. testString: 'getUserInput => assert(!getUserInput("index").match(/function/g), "function keyword was not used.");' ```
## Challenge Seed
```js var magic = function() { "use strict"; return new Date(); }; ```
## Solution
```js // solution required ```