Какие знаешь два вида объявления функции в JS

«Какие знаешь два вида объявления функции в JS» — вопрос из категории JavaScript, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

  1. Function Declaration (Объявление функции)

    function sum(a, b) {
        return a + b;
    }
    • Функция доступна до её объявления в коде благодаря hoisting (поднятию).
    • Создаёт именованную функцию в текущей области видимости.
  2. Function Expression (Функциональное выражение)

    const sum = function(a, b) {
        return a + b;
    };
    • Функция создаётся как часть выражения (например, присваивания).
    • Её можно вызвать только после того, как выражение было выполнено.
    • Частный случай — Arrow Function (Стрелочная функция):
      const sum = (a, b) => a + b;
    • Имеет лексическое связывание this (не создаёт собственный контекст this).
    • Не имеет собственных псевдомассивов arguments и super.
    • Не может быть использована как конструктор (с оператором new).