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

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

Однако важно то, что я остаюсь любопытным и продолжаю заниматься своим делом, день ото дня становясь лучшим разработчиком. Одна важная вещь, которая помогает мне учиться (помимо собственно программирования), - это объяснять это вслух.

Объявление функции

Это подводит меня к первой теме. Объявление функции. Пример этого выглядит так…

Когда вы объявляете функцию, вы разрешаете ее глобальное использование во всей вашей кодовой базе. Термин подъем (представьте, что что-то тянется вверх) используется, что означает, что независимо от того, где вы начинаете объявлять функцию, после ее обратного вызова функция все равно работать по назначению. Например, если вы создаете функцию, в которой console.logs записывает слово в строке 3, но вызываете функцию в строке 1, код все равно будет работать.

Функциональное выражение

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

Зачем вообще использовать функциональные выражения?

Это был мой вопрос. После нескольких минут исследования (и даже реализации его с помощью моего личного проекта) я чувствую, что это для чистоты / ясности общей структуры кода. Если вы знаете, что ваша функция будет использоваться где-то еще (например, функции обратного вызова), лучше всего будет объявить ее. Функциональные выражения помогают избежать «скопления» кода, и после его использования отпадает необходимость постоянно запоминать его. Вы создаете функцию, затем используете ее, а затем переходите к следующей строке кода.

Помните, что объявление является асинхронным, тогда как выражения - синхронными.

Надеюсь, это поможет хотя бы одному человеку! И, как я уже упоминал в начале, если что-то, что я упомянул в этом посте, является неверной информацией, пожалуйста, не стесняйтесь обращаться к нам. Просто младший разработчик, пытающийся стать лучше :)