Функції

Функції #

Яка різниця між декларацією функції (function declaration) та функціональним виразом (function expression)? #

Що таке анонімна функція? #

Розкажіть про стрілкові функції (arrow function). В чому полягають відмінності стрілкових функцій від звичайних? #

Що таке і для чого використовують IIFE (Immediately Invoked Function Expression)? #

Що таке hoisting, як він працює для змінних і функцій? #

Що таке замикання (closure) і які сценарії його використання? #

Як ви розумієте замикання? Що буде виведено в консолі в цьому випадку? #

var f = function() {
  console.log(1);
}

var execute = function(f) {
  setTimeout(f, 1000);
}

execute(f); // что выведет в консоль и почему

f = function() {
  console.log(2);
}

Що таке рекурсія? #

Що означає ключове слово this? #

Що таке втрата контексту, коли відбувається і як їй запобігти? #

Методи функцій bind / call / apply — навіщо і в чому різниця? #