Встречается на собеседованиях • сегодня

В чем разница между типами функций

Функции в JS бывают нескольких видов:

  1. Function Declaration - объявляется с ключевым словом function, имеет hoisting (можно вызвать до объявления):
js
function sum(a, b) {
  return a + b;
}
  1. Function Expression - функция присваивается переменной, нет hoisting:
js
const sum = function(a, b) {
  return a + b;
};
  1. Arrow Function (ES6) - компактный синтаксис, нет своего this, arguments:
js
const sum = (a, b) => a + b;
  1. IIFE (Immediately Invoked Function Expression) - выполняется сразу после создания:
js
(function() {
  console.log('IIFE');
})();
  1. Generator Function - функция с возможностью приостановки выполнения:
js
function* gen() {
  yield 1;
  yield 2;
}

Основные различия: синтаксис, hoisting, поведение this, использование yield, область видимости.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы