В мистической стране JavaScript, где переменные и управляющие структуры сформировали множество квестов, в арсенале нашего волшебника есть еще один волшебный инструмент: Функции. Этот магический инструмент похож на книгу заклинаний, содержащую множество заклинаний (функций), готовых к использованию.

Сегодня давайте углубимся в эту книгу заклинаний и разгадаем еще несколько заклинаний, которые позволяют нам совершать более великие подвиги.

🧙‍♂️ Создание наших заклинаний: создание расширенных функций

После вашего последнего знакомства с основами создания функций пришло время повысить уровень! Как и любой колдун, с практикой мы обретаем способность создавать более сложные и мощные заклинания.

Стрелочные функции

Этот новый синтаксис, представленный в ES6, дает нам сокращенный способ написания функций.

Традиционное заклинание:

function greet(name) {
  return "Hello, " + name + "!";
}

Заклинание функции стрелки:

const greet = (name) => "Hello, " + name + "!";

Лаконичное тело и отсутствие ключевого слова function делают стрелочные функции любимыми среди многих магов.

Параметры по умолчанию

Вам когда-нибудь хотелось иметь запасное заклинание на случай, если что-то не будет указано? Параметры по умолчанию позволяют нам сделать именно это.

function brewPotion(potionType = "healing") {
  return "Brewing a " + potionType + " potion!";
}

Если тип зелья не указан, будет приготовлено лечебное зелье по умолчанию.

Параметр покоя

Иногда мы не уверены, сколько ингредиентов (аргументов) нам понадобится для заклинания. Оставшийся параметр, обозначенный ..., помогает нам собрать неопределенное количество аргументов в массив.

function conjure(...items) {
  return "Conjuring: " + items.join(', ');
}

🪄 Расширенное использование заклинаний: вызов функций

Вызов функции сродни произнесению заклинания. А благодаря расширенным функциям кастинг может стать настоящим зрелищем:

Выражения с немедленным вызовом функций (IIFE)

Иногда заклинание действует настолько быстро, что его хочется произнести сразу после создания.

(function() {
    console.log("Instant Magic!");
})();

Это заклинание (функция) применяется сразу после его создания!

Функции обратного вызова

Представьте себе, что вы произносите заклинание внутри заклинания. Обратный вызов позволяет нам использовать функцию в качестве аргумента для другой функции.

function teleport(location, callback) {
    console.log("Teleporting to " + location + "...");
    callback();
}

teleport("Forbidden Forest", function() {
    console.log("Watch out for magical creatures!");
});

При телепортации наш обратный вызов предупреждает нас о волшебных существах в Запретном лесу.

🧝‍♂️ Подведение итогов и следующие приключения

Сегодняшнее путешествие по книге заклинаний функций JavaScript провело нас через более глубокие чары и могущественную магию. Функции, как и заклинания, представляют собой разнообразные и мощные инструменты в нашем арсенале, позволяющие нам творить чудеса с помощью кода.

Но помни, юный колдун, с большой силой приходит и большая ответственность. Всегда следите за тем, чтобы ваши заклинания (функции) были понятны и не причиняли вреда (ошибок) миру.

⚡ Задания чародея: проверьте свою магию⚡

Дорогие заклинатели из области JavaScript, теперь, когда вы раскрыли еще больше секретов нашей магии (функций), я призываю вас проверить свои вновь обретенные знания. Вот ваши задачи:

Алхимия стрел

📜 Задание: создайте стрелочную функцию с именем elixir, которая принимает два ингредиента (параметра) и возвращает волшебный напиток, объединяя их. Не забудьте проверить свое заклинание!

Запасной вариант

📜 Испытание: создайте заклинание (функцию) под названием fortuneTeller, которое предсказывает будущее. Он должен принимать имя в качестве параметра, но если имя не указано, по умолчанию он должен предсказывать будущее «неизвестного путешественника».

Сбор элементов

📜 Испытание: создайте заклинание, используя параметр rest, которое собирает любое количество магических существ и составляет их список. Назовите его creatureCollector.

Мгновенные заклинания

📜 Вызов. Используя концепцию IIFE, немедленно вызовите функцию, которая объявляет союз всех волшебников в области JavaScript против ошибок и ошибок!

Цепочка чар

📜 Вызов: напишите основную функцию с именем spellCaster, которая применяет базовое заклинание. Затем добавьте вторичную функцию (обратный вызов), которая усиливает силу основного заклинания. Убедитесь, что основное заклинание применяется перед усилением!

🌌 Бонус «Звездная пыль»: объедините как минимум две магические концепции из нашего урока в одно грандиозное заклинание! Дайте волю своему творчеству и продемонстрируйте свое мастерство волшебника JavaScript.

После того, как вы выполнили свои задачи, поделитесь своими заклинаниями в разделе комментариев ниже. Я выберу три самых изобретательных и мощных заклинания, чтобы продемонстрировать их на следующем уроке магии.

Помните: в стране кода и магии практика имеет решающее значение! Делайте это с умом, и до нашего следующего завораживающего путешествия…