В JavaScript нам часто не нужно называть наши функции, особенно при передаче функции в качестве аргумента другой функции. Вместо этого мы создаем анонимные функции "на лету". Нам не нужно называть эти функции, потому что мы не используем их повторно нигде. Для этого мы часто используем следующий синтаксис:
const myFunc = function () {
  const myVar = "value";
  return myVar;
}const myFunc = () => {
  const myVar = "value";
  return myVar;
}
Когда нет тела функции, а есть только возвращаемое значение, синтаксис функции стрелки позволяет опустить ключевое слово return, а также скобки, окружающие код. Это помогает уместить такие функции в однострочные операторы: 
 const myFunc = () => "value" value.
Примечание: с таким сокращенным синтаксисом важно понимать, что вы не можете вернуть в качестве результата новый объект, описанный в фигурные скобки. То есть JS не понимает, что вы хотите вернуть новый объект. Он видит фигурные скобки и воспринимает их как тело функции. Пример такого неправильного синтаксиса:
myFunc = () => {name: "Stef", age: 22}
// Uncaught SyntaxError: Unexpected token ':'
name: "Stef", age: 22, а это неправильный синтаксис.
Но это легко лечится, если обернуть объект в круглые скобки.
myFunc = () => ({name: "Stef", age: 22})
Примечание: Как передавать параметры в стрелочные функции, сомтрите в следующем уроке.
Примечание 2: про удобство использования стрелочных функций в классах смотрите в уроке Привязать this к методу класса.
Используя синтаксис стрелочных функций, перепишите функцию, чтобы она возвращала Date() и присвойте эту функцию переменной magic. Также убедитесь, что ничего не определено с помощью ключевого слова var .