Какие особенности у функций в JavaScript

«Какие особенности у функций в JavaScript» — вопрос из категории JavaScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Функции в JavaScript являются объектами первого класса, что означает их можно:

  1. Присваивать переменным
  2. Передавать как аргументы
  3. Возвращать из других функций

Особенности:

  • Поддерживают замыкания (доступ к внешним переменным)
  • Имеют контекст выполнения (this)
  • Можно вызывать разными способами: func(), new Func(), func.call(), func.apply()
  • Есть Function Declaration и Function Expression
  • У функций есть свойства (name, length) и методы (bind, call, apply)

Пример:

// Function Declaration
function sum(a, b) {
  return a + b;
}

// Function Expression
const multiply = function(a, b) {
  return a * b;
};

// Стрелочная функция (не имеет своего this)
const divide = (a, b) => a / b;