Извикване на функция на място в JavaScript

Сега ще разгледаме техника, която позволява извикване на функция точно на мястото, където е декларирана. Тази конструкция се нарича Immediately Invoked Function Expression (IIFE).

Нека да разгледаме пример. Да предположим, че имаме следното функционално изражение:

javascriptlet func = function() {
  console.log('!');
};

func(); // ще изведе '!'

Сега нека не присвояваме нашата функция на променлива, а да я извикаме веднага, "на място". За целта поставяме кръгли скоби след функцията:

javascript+function() {
  console.log('!'); // ще изведе '!'
}();

Наличието на плюс в този случай е задължително условие, тъй като без него функцията ще стане Function Declaration, а те не могат да се извикват на място (още повече без име). Разбира се, вместо плюс може да бъде всичко, - основното е нашата функция да бъде функционално изражение.

Задание 1

Определете, без да стартирате кода, какво ще се изведе в конзолата:

javascript!function() {
  console.log('!');
}();
Задание 2

Определете, без да стартирате кода, какво ще се изведе в конзолата:

javascriptfunction() {
  console.log('!');
}();