--- id: 587d7b87367417b2b2512b43 title: Use Arrow Functions to Write Concise Anonymous Functions challengeType: 1 forumTopicId: 301211 localeTitle: 使用箭头函数编写简洁的匿名函数 --- ## Description
在 JavaScript 里,我们会经常遇到不需要给函数命名的情况,尤其是在需要将一个函数作为参数传给另外一个函数的时候。这时,我们会创建匿名函数。因为这些函数不会在其他地方复用,所以我们不需要给它们命名。 这种情况下,我们通常会使用以下语法: ```js const myFunc = function() { const myVar = "value"; return myVar; } ``` ES6 提供了其他写匿名函数的方式的语法糖。你可以使用箭头函数: ```js const myFunc = () => { const myVar = "value"; return myVar; } ``` 当不需要函数体,只返回一个值的时候,箭头函数允许你省略return关键字和外面的大括号。这样就可以将一个简单的函数简化成一个单行语句。 ```js const myFunc = () => "value"; ``` 这段代码仍然会返回value
## Instructions
使用箭头函数的语法重写magic函数,使其返回一个新的Date()。同时不要用var关键字来定义任何变量。
## Tests
```yml tests: - text: 替换掉var关键字。 testString: getUserInput => assert(!getUserInput('index').match(/var/g)); - text: magic应该为一个常量 (使用const)。 testString: getUserInput => assert(getUserInput('index').match(/const\s+magic/g)); - text: magic是一个function。 testString: assert(typeof magic === 'function'); - text: magic()返回正确的日期。 testString: assert(magic().setHours(0,0,0,0) === new Date().setHours(0,0,0,0)); - text: 不要使用function关键字。 testString: getUserInput => assert(!getUserInput('index').match(/function/g)); ```
## Challenge Seed
```js var magic = function() { "use strict"; return new Date(); }; ```
## Solution
```js const magic = () => { "use strict"; return new Date(); }; ```