Изучайте терминологию JavaScript вместе со мной, чтобы мы выглядели как профессионалы

Доброе утро, друзья,

До сих пор мы говорили о немедленно вызываемых функциях, функциях первого класса и функциях высшего порядка. Мы усиливаем нашу игру, чтобы убедиться, что, когда наши будущие коллеги по работе разговаривают с нами, мы точно знаем, о чем они говорят. Мы не хотим выглядеть потерянными новичками — что, наверное, неизбежно, но мужчина может попытаться.

Сегодня мы рассмотрим еще немного жаргона веб-разработчиков; более конкретно, мы собираемся рассмотреть именованные функции и анонимные функции.

Итак, давайте углубимся в это. Давайте узнаем что-нибудь интересное.

Мы начинаем с именованных функций

… и причина, по которой мы начинаем с именованных функций, заключается в том, что это самоочевидно, и, если вы когда-либо изучали функции JavaScript, вы уже знаете все, что вам нужно знать.

Именованные функции — это функции, которые инициализируются именами. Сумасшедший да?

Вот пример:

Как видите, две показанные функции созданы с именами. Есть функции getName и setName.

Именованные функции всегда будут иметь такой формат:

function functionNameHere(){
    //...
}

Анонимные функции

Анонимные функции, как можно заключить, — это функции, которым не присвоены имена. Они могут принимать несколько различных форм.

Как видите, у функции нет имени.

Вы можете подумать: «Да, это так. Его имя sample, и я знаю это, потому что вызов функции sample() будет работать».

Отчасти это верно, юный падаван. В приведенном выше сценарии мы устанавливаем переменную sample для ссылки на эту анонимную функцию. Другими словами, мы присваиваем значение sample, и это значение является анонимной функцией.

Таким образом, хотя они ссылаются на один и тот же адрес в памяти и дадут один и тот же результат, sample и анонимная функция являются отдельными. Верно? Потому что после того, как этот оператор (инициализация sample) будет выполнен, анонимная функция больше не будет существовать. sample как функция будет существовать, но эта анонимная функция исчезла. Вы не можете повторно использовать эту анонимную функцию. Имеет ли это смысл?

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

Выше мы можем наблюдать стрелочную функцию. Как и в предыдущем примере кода, у этой функции нет имени. Следовательно, это анонимная функция.

Выше мы можем наблюдать еще одну стрелочную функцию. Мы постоянно видим стрелочные функции (или даже простые анонимные функции), когда имеем дело с операторами try-catch и асинхронным JavaScript.

Наконец, мы также видим анонимные функции при работе с функциями с немедленным вызовом.

Как видите, функции, вызываемые немедленно, также не имеют имен функций.

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.