freeCodeCamp/curriculum/challenges/russian/02-javascript-algorithms-and-data-structures/es6/use-arrow-functions-to-write-concise-anonymous-functions.russian.md

3.4 KiB
Raw Blame History

id, title, challengeType, forumTopicId, localeTitle
id title challengeType forumTopicId localeTitle
587d7b87367417b2b2512b43 Use Arrow Functions to Write Concise Anonymous Functions 1 301211 Используйте функции стрелок для записи сжатых анонимных функций

Description

В JavaScript нам часто не нужно называть наши функции, особенно при передаче функции в качестве аргумента другой функции. Вместо этого мы создаем встроенные функции. Нам не нужно называть эти функции, потому что мы не используем их повторно нигде. Для этого мы часто используем следующий синтаксис:
const myFunc = function () {
const myVar = "value";
return myVar;
}
ES6 предоставляет нам синтаксический сахар, чтобы не писать анонимные функции таким образом. Вместо этого вы можете использовать синтаксис функции стрелки :
const myFunc = () => {
const myVar = "value";
return myVar;
}
Когда нет тела функции и только возвращаемое значение, синтаксис функции стрелки позволяет опустить return ключевое слово, а также скобки, окружающие код. Это помогает упростить меньшие функции в однострочные операторы:
const myFunc = () => "value"
Этот код по-прежнему будет возвращать value по умолчанию.

Instructions

Перепишите функцию, назначенную переменной magic которая возвращает новую Date() для использования синтаксиса функции стрелки. Также убедитесь, что ничего не определено с помощью ключевого слова var .

Tests

tests:
  - text: User should replace <code>var</code> keyword.
    testString: getUserInput => assert(!getUserInput('index').match(/var/g));
  - text: <code>magic</code> should be a constant variable (by using <code>const</code>).
    testString: getUserInput => assert(getUserInput('index').match(/const\s+magic/g));
  - text: <code>magic</code> should be a <code>function</code>.
    testString: assert(typeof magic === 'function');
  - text: <code>magic()</code> should return correct date.
    testString: assert(magic().setHours(0,0,0,0) === new Date().setHours(0,0,0,0));
  - text: <code>function</code> keyword should not be used.
    testString: getUserInput => assert(!getUserInput('index').match(/function/g));

Challenge Seed

var magic = function() {
  "use strict";
  return new Date();
};

Solution

const magic = () => {
  "use strict";
  return new Date();
};