Вызов функции на месте в 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('!');
}();