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

Каждая функция должна иметь оператор return, в котором указывается возвращаемое значение, если нет оператора return, то она вернет значение по умолчанию undefined.

Объявление функции / определение функции

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

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

будет охватывать типы объявления функций в этом посте

Чистые функции:

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

Неочищенные функции:

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

Функции конструктора:

Конструкторские функции технически являются обычными функциями. Однако есть два соглашения:

  1. Сначала они называются с заглавной буквы.
  2. Их следует выполнять только с оператором "new".

Пример использования функции конструктора:

  1. Создание подобных типов объектов с помощью ключевого слова новое.
  2. мы можем выполнять проверки экземпляров с помощью ключевого слова instanceof.

Заводские функции:

Фабричная функция - это любая функция, которая не является классом или конструктором, возвращающим объект.

В JavaScript любая функция может возвращать объект. Когда это происходит без ключевого слова new, это заводская функция.