Самовиклик функцій

На співбесідах можна часто почути питання: "Як зробити так, щоб створена функція одразу виконалась?".

Одразу приходить ідея:

function test(){ console.log('test'); }
test();

Та отримуєте -1 бал в анкетку. Правильна відповідь - взяти функцію в дужки і поставити ще раз дужки поруч:

(ініціалізація_функції)();
(function test() { console.log('test'); })();

Якщо функція викликатиметься лише раз - її можна зробити анонімною:

(function() { console.log('test'); })();

З таким способом ми ближче познайомимося при вивченні бібліотеки jQuery.

Якщо потрібно передати аргументи - вони прописуються у другі дужки:

(function(a, b) { console.log(a, b); })(5, 24);

Вважається хорошим тоном огортати весь свій код у замикання. Маємо скрипт:

let a...
...
...
console.log(...);

Можна його огорнути у функцію та викликати її:

function homework37() {
  let a...
  ...
  ...
  console.log(...);
}
homework37();

Або огорнути дужками анонімну функцію:

(function() {
  var a...
  ...
  ...
  console.log(...);
})();

При такому способі всі створені вами змінні будуть локальними, а не глобальними, вони гарантовано не будуть конфліктувати з кодом інших розробників, бібліотек і т.п.