--- id: 587d7b87367417b2b2512b43 title: Use Arrow Functions to Write Concise Anonymous Functions challengeType: 1 videoUrl: '' localeTitle: 使用箭头函数编写简明的匿名函数 --- ## Description <section id="description">在JavaScript中,我们通常不需要命名我们的函数,特别是在将函数作为参数传递给另一个函数时。相反,我们创建内联函数。我们不需要命名这些函数,因为我们不会在其他任何地方重用它们。为此,我们经常使用以下语法: <blockquote> const myFunc = function(){ <br> const myVar =“value”; <br>返回myVar; <br> } </blockquote> ES6为我们提供了语法糖,而不必以这种方式编写匿名函数。相反,您可以使用<strong>箭头函数语法</strong> : <blockquote> const myFunc =()=> { <br> const myVar =“value”; <br>返回myVar; <br> } </blockquote>当没有函数体,并且只有返回值时,箭头函数语法允许您省略关键字<code>return</code>以及代码周围的括号。这有助于将较小的函数简化为单行语句: <blockquote> const myFunc =()=>“value” </blockquote>默认情况下,此代码仍将返回<code>value</code> 。 </section> ## Instructions <section id="instructions">重写分配给变量<code>magic</code>的函数,该函数返回一个新的<code>Date()</code>以使用箭头函数语法。还要确保使用关键字<code>var</code>定义任何内容。 </section> ## Tests <section id='tests'> ```yml tests: - text: 用户确实替换了<code>var</code>关键字。 testString: 'getUserInput => assert(!getUserInput("index").match(/var/g), "User did replace <code>var</code> keyword.");' - text: <code>magic</code>应该是一个常量变量(通过使用<code>const</code> )。 testString: 'getUserInput => assert(getUserInput("index").match(/const\s+magic/g), "<code>magic</code> should be a constant variable (by using <code>const</code>).");' - text: <code>magic</code>是一种<code>function</code> 。 testString: 'assert(typeof magic === "function", "<code>magic</code> is a <code>function</code>.");' - text: <code>magic()</code>返回正确的日期。 testString: 'assert(magic().getDate() == new Date().getDate(), "<code>magic()</code> returns correct date.");' - text: <code>function</code>关键字未使用。 testString: 'getUserInput => assert(!getUserInput("index").match(/function/g), "<code>function</code> keyword was not used.");' ``` </section> ## Challenge Seed <section id='challengeSeed'> <div id='js-seed'> ```js var magic = function() { "use strict"; return new Date(); }; ``` </div> </section> ## Solution <section id='solution'> ```js // solution required ``` </section>